From: Hiroyuki Komatsu Date: 2003-04-29T02:35:24+09:00 Subject: [ruby-dev:20110] Re: jcode.rb 小松です. At Tue, 29 Apr 2003 00:56:15 +0900, Yukihiro Matsumoto wrote: > |> |すべての動作が変わってしまうのは困るのだけど > |> |jcode.rbの機能を使いたいという場面もあるのではないかと思います。 > |> > |> ベースにするのは小松さんのjstringのほうがよいかもという気が。 > |> いや、コードはまだ見てないんで「私が作ったのではない」という > |> 以上の理由は現時点ではないのですが。 > | > |jstringはrequire 'jcode'してるのでベースはjcode.rbになってし > |まいます。 > > そうなんだ。ということは、jcode + jstring を新jstringとして、 > extend(またはscope-in-state)対応にするという方向はどうでしょ > う? まだ単なるアイディアだけだけど。 jstring を jcode と統合して上流に置いていただけると、非常に うれしいです。とりあえず JString をモジュール化してみました。 http://taiyaki.org/tmp/ruby/jstring.rb -------- require 'jstring' $KCODE='e' str1 = 'あいうえお' str2 = 'あいうえお' ### extend で機能を追加 str1.extend(JString) p str1[2] # => "う" p str2[2] # => 164 str2.extend(JString) p str2[2] # => "う" ### モジュール変数の操作により、配列操作のデフォルトの挙動を変更可能 ### モジュール変数のデフォルト値は true JString::jarray = false p str1[2] # => 164 p str2[2] # => 164 ### インスタンス変数の操作により、個々の配列操作の挙動を変更可能 ### インスタンス変数のデフォルト値は nil (= モジュール変数に従う) str1.jarray = true p str1[2] # => "う" p str2[2] # => 164 -------- -- 小松弘幸 ----------------------- http://taiyaki.org/