[#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
まつもと ゆきひろです
[#35604] Re: Rational#to_int ← String#center
— Take_tk <ggb03124@...>
2002/07/22
たけ(tk)です
[#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
ふじまるです。
[#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:35645] Re: scope-in-state [Re: new mathn [Re: Rational#to_int ← String#center]]
From:
Shin-ichiro HARA <sinara@...>
Date:
2002-07-26 08:04:04 UTC
List:
ruby-list #35645
原です。
>けいじゅ@日本ラショナルソフトウェアです.
>
>>|scope-in-stateの方は, 状態自身をスレッドに持たせその状態に応じて, クラ
>>|スの定義を変えようってものになっています. ただ, 自由に変えるのは不可能
>>|なんで, 見た感じとしては状態に応じてincludeされているモジュールを入れ
>>|替えてそのモジュールで定義されているメソッドが有効になるようになってい
>>|ます.
>>
>>これそのものは面白い考えですよね。整理して取り込みましょうよ。
>
>では, 今の考え方を紹介します.
すばらしー、大傑作ではないでしょうか。これで、多くの問題がうやむやに
、、、いや、解決できますね。(^^
私も似たようなことを考えていたんですが、スレッドを考えると難しくて
やめてしまいました。
思いつくままに意見を:
>モジュールSは状態を表しているつもりです. ここで, S::FooはFooに追加さ
>れるモジュール, S::BarはBarに追加されるモジュールです. 一度に複数のク
>ラスの振る舞いを変えることができないと意味がないので, こんな感じになり
>ました. 上記の場合 S::Mod1::Mod2::Mod3は Sを取ったもの, つまり
>Mod1::Mod2::Mod3に追加されます.
複数のモジュールを同時に考えると便利ではあるけれど、そのために使
い方が、ちょっと手間が必要になっていないかなあ。ネストができるの
だから素朴に
class Foo; def foo; 0; end; end
class Bar; def bar; 0; end; end
module Foo1; def foo; 1; end; end
module Bar1; def bar; 1; end; end
foo, bar = Foo.new, Bar.new
ScopeInState.new(Foo, Foo1).in_scope do
p [foo.foo, bar.bar] #=> [1, 0]
ScopeInState.new(Bar, Bar1).in_scope do
p [foo.foo, bar.bar] #=> [1, 1]
end
end
みたいなので十分では?
あるいは、
Foo.in_state(Foo1) do
Bar.in_state(Bar1) do
p [foo.foo, bar.bar] #=> [1, 1]
end
end
みたいなインターフェースだと見た目がいいかも。しかし、Foo.in_state
が Foo の状態を替えるところが気持ち悪いかな。
>1. 上記のような単純な場合はわかりやすいが, ベースのクラスが継承したり
> includeしていたりすると, どう動作するのか想像しがたい.
>1.は, 状態スコープで定義されたものが優先されるはずです. 概念的にはベー
>スクラスで定義されたメソッドを状態に応じて変えるので, ベースクラスのメ
>ソッドと同レベルと判断したからです.
include されたモジュールのメソッドに関してもすげ替えができるようになっ
たらうれしいなあ。つまり、
module M0
def foo; 0; end
end
module M1
def foo; 1; end
end
class Foo
include M0
end
module S
module Foo
include M1
end
end
ScopeS = ScopeInState.new(S)
foo = Foo.new
p foo.foo #=> 0
ScopeS.scope_in do
p foo.foo #=> 1
end
p foo.foo #=> 0
みたいに。
>2. 状態スコープのネスティングができるようになっているが, そのため実装
> が複雑&&実行コストがかかっている
このモジュールは整数の割り算とか、頻繁に実行される基礎的なメソッ
ドにも使われる可能性が大なわけですよね。だから、実行コストの問題
は、実験してみないとわからないけど、非常に大きいかもしれませんね。
scope の入り口と出口でメソッド書き換えるのが、多分そのメソッドの
実行コストは一番小さいけど、そうするとマルチスレッドと両立できな
いですよね。ただ、大きなコストの差があるなら、そういうバージョン
も欲しいです。