[#35514] postgreSQL モジュール — Takeshi Honda <moecho21@...>
rubyで、postgreSQLを利用するためのモジュールって
5 messages
2002/07/03
[#35523] [ 質問 ] オブジェクト名を得る方法 — Fujimaru Hiroyasu <f-hiro@...>
ふじまると申します。
7 messages
2002/07/04
[#35537] TMail: Mail#decode — "Shirai,Kaoru" <shirai@...1jp.com>
白井です。
8 messages
2002/07/10
[#35538] Re: TMail: Mail#decode
— Minero Aoki <aamine@...>
2002/07/10
あおきです。
[#35539] erubyがうまくコンパイルできません。 — "Honda" <honda@...>
Hondaといいます。
9 messages
2002/07/11
[#35551] Numeric#=== — Take_tk <ggb03124@...>
たけ(tk)です
6 messages
2002/07/13
[#35556] Beware No. 44495 of ruby-talk — maili31s@... (SugHimsi == SUGIHARA Hiroshi)
(ruby-talk:44495)がKlez.h型のVirusメイルであるようです。
4 messages
2002/07/14
[#35577] [ANN] amrita 0.8.1 — Taku Nakajima <tnakajima@...>
中島@ブレーンです。
5 messages
2002/07/19
[#35582] mod_ruby なしで eruby — FUJIOKA Takeyuki <fujioka@...>
藤岡です。
13 messages
2002/07/19
[#35583] Re: mod_ruby なしで eruby
— akira yamada / やまだあきら <akira@...>
2002/07/19
[#35592] String#center — Take_tk <ggb03124@...>
仕様拡張のお願い。と言うほどのものでもないですが・・
33 messages
2002/07/20
[#35593] Re: String#center
— Kazuhiro NISHIYAMA <zn@...>
2002/07/20
西山和広です。
[#35596] Re: String#center
— Take_tk <ggb03124@...>
2002/07/20
たけ(tk)です。
[#35597] Re: String#center
— Kazuhiro NISHIYAMA <zn@...>
2002/07/20
西山和広です。
[#35599] Rational#to_int ← String#center
— Take_tk <ggb03124@...>
2002/07/21
たけ(tk)です。
[#35601] Re: Rational#to_int ← String#center
— matz@... (Yukihiro Matsumoto)
2002/07/21
まつもと ゆきひろです
[#35618] new mathn [Re: Rational#to_int ← String#center]
— keiju@... (石塚圭樹)
2002/07/23
けいじゅ@日本ラショナルソフトウェアです.
[#35624] Re: new mathn [Re: Rational#to_int ← String#center]
— matz@... (Yukihiro Matsumoto)
2002/07/24
まつもと ゆきひろです
[#35628] Re: new mathn [Re: Rational#to_int ← String#center]
— keiju@... (石塚圭樹)
2002/07/24
けいじゅ@日本ラショナルソフトウェアです.
[#35630] Re: new mathn [Re: Rational#to_int ← String#center]
— matz@... (Yukihiro Matsumoto)
2002/07/24
まつもと ゆきひろです
[#35631] scope-in-state [Re: new mathn [Re: Rational#to_int ← String#center]]
— keiju@... (石塚圭樹)
2002/07/25
けいじゅ@日本ラショナルソフトウェアです.
[#35645] Re: scope-in-state [Re: new mathn [Re: Rational#to_int ← String#center]]
— Shin-ichiro HARA <sinara@...>
2002/07/26
原です。
[#35700] import-module (Re: Re: scope-in-state)
— Shin-ichiro HARA <sinara@...>
2002/08/02
原です。
[#35603] [ANN] CGI::Application-1.0.0 released — MoonWolf <moonwolf@...>
MoonWolfです。
10 messages
2002/07/21
[#35612] [ANN] CGI::Application-1.1.0 released
— MoonWolf <moonwolf@...>
2002/07/22
MoonWolfです。
[#35633] String::freeze_mode — Take_tk <ggb03124@...>
たけ(tk)です
8 messages
2002/07/26
[#35634] HTTP セッションのタイムアウト — 杉原 透修 <sugihara@...>
杉原と申します。
5 messages
2002/07/26
[#35646] textbuf: SEGV with GC.start — "Shirai,Kaoru" <shirai@...1jp.com>
白井です。
5 messages
2002/07/26
[#35660] ?/ の意味 — Tadashi Oh-Ya <toy@...>
おおやと申します。
6 messages
2002/07/30
[#35667] cgi のエラー — Takeshi Honda <moecho21@...>
http://homepage1.nifty.com/arima/ruby/index.htm
11 messages
2002/07/30
[#35669] Re: cgi のエラー
— Fujimaru Hiroyasu <f-hiro@...>
2002/07/31
ふじまるです。
[#35673] Re: cgi のエラー
— Takeshi Honda <moecho21@...>
2002/07/31
新旧2つのスクリプトの改行コードは同じです。
[#35670] STR2CSTR() — OHARA Shigeki <os@...>
大原といいます。
12 messages
2002/07/31
[#35671] Re: STR2CSTR()
— matz@... (Yukihiro Matsumoto)
2002/07/31
まつもと ゆきひろです
[#35677] Re: STR2CSTR()
— OHARA Shigeki <os@...>
2002/08/01
大原です。
[ruby-list:35631] scope-in-state [Re: new mathn [Re: Rational#to_int ← String#center]]
From:
keiju@... (石塚圭樹)
Date:
2002-07-25 03:42:56 UTC
List:
ruby-list #35631
けいじゅ@日本ラショナルソフトウェアです.
In [ruby-list:35630] the message: "[ruby-list:35630] Re: new mathn
[Re: Rational#to_int ← String#center]", on Jul/25 02:46(JST) Yukihiro
Matsumoto writes:
>まつもと ゆきひろです
>|静的スコープならselector name spaceではないかと思うのですが? 違うのか
>|な?
>
>たぶん。でも本当になにが必要とされているかは結論が出てないと
>思います。そもそもselector namespaceがどのようなものなのかさ
>え決まってない(決めていない)のが現実なので。
以前は, ruby-talkで議論があったんだよね?
>|静的スコープと動的スコープのどちらがよいかは, 使い方によるんでしょうね.
>
>ですね。静的なほうが嬉しいことが多いでしょうけど(影響範囲が
>限定されて挙動が予想しやすいので)。
静的のほうは見てわかりますからね.
>|scope-in-stateの方は, 状態自身をスレッドに持たせその状態に応じて, クラ
>|スの定義を変えようってものになっています. ただ, 自由に変えるのは不可能
>|なんで, 見た感じとしては状態に応じてincludeされているモジュールを入れ
>|替えてそのモジュールで定義されているメソッドが有効になるようになってい
>|ます.
>
>これそのものは面白い考えですよね。整理して取り込みましょうよ。
では, 今の考え方を紹介します.
まず, ベースのクラスを定義します:
class Foo
def foo
p "Foo"
end
end
class Bar
def bar
p "Bar"
end
end
さらに状態に応じて変更する部分を以下のように定義します.
module S
module Foo
def foo
p "S"
end
end
module Bar
def foo
p "S"
end
end
end
モジュールSは状態を表しているつもりです. ここで, S::FooはFooに追加さ
れるモジュール, S::BarはBarに追加されるモジュールです. 一度に複数のク
ラスの振る舞いを変えることができないと意味がないので, こんな感じになり
ました. 上記の場合 S::Mod1::Mod2::Mod3は Sを取ったもの, つまり
Mod1::Mod2::Mod3に追加されます.
次に状態スコープを定義します.
ScopeS = ScopeInState.new(S)
定義はここまでです.
使い方は, 簡単:
通常は, ベースのクラスの振る舞いになります:
>> Foo.new.foo
"Foo"
>> Bar.new.foo
NameError: NameError: undefined local variable or method `foo' for #<Bar:0x401dd6fc>
で, ScopeSを指定すると, 以下のようにmodule Sで定義された振る舞いに変わ
ります.
# こっちは変更
>> ScopeS.scope_in do
?> Foo.new.foo
>> end
"S"
# こっちは追加
>> ScopeS.scope_in do
?> Bar.new.foo
>> end
"S"
だいたいこんな感じです. 気になる点としては,
1. 上記のような単純な場合はわかりやすいが, ベースのクラスが継承したり
includeしていたりすると, どう動作するのか想像しがたい.
2. 状態スコープのネスティングができるようになっているが, そのため実装
が複雑&&実行コストがかかっている
3. メソッドの追加はできるがundefができない.
1.は, 状態スコープで定義されたものが優先されるはずです. 概念的にはベー
スクラスで定義されたメソッドを状態に応じて変えるので, ベースクラスのメ
ソッドと同レベルと判断したからです.
2.は非常に気にはなっているのですが...
3.は特別なメソッドを用意するしかないかなと思っています.
あ. あと, ソースはRAAに登録されています. まだ, エラー処理も何もないの
でいい加減ですが...
__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju@rational.com <<---