[#18226] Ruby 本ってば、うれしいなー — Atsuko Yoshida <atsuko@...>
こんにちは〜。久しぶりです。あつこです。
[#18233] [book] blade.nagaokaut.ac.jp/ruby/ruby-list/ — Shin-ichiro Hara <sinara@...>
原です。
けいじゅ@日本ラショナルソフトウェアです.
原です。
これつぐです。
けいじゅ@日本ラショナルソフトウェアです.
これつぐです。
けいじゅ@日本ラショナルソフトウェアです.
原です。
[#18265] アクセス制御について — Tadashige Morii <m_tada@...>
森井です。
[#18293] [book] 新宿紀伊國屋売り上げ情報 — Noritsugu Nakamura <nnakamur@...>
[#18332] rubyTk の Tk は何がお勧めですか? — Sakae Kobayashi <sakae@...>
小林栄と申します。
[#18338] オブジェクトの非同一性判定 — Ayanosuke <aya@...>
綾乃介です。
いわおかです。
綾乃介です。
[#18348] Is there ext/GD for gd-1.7.x — "OGAWA, Hiroshi Santa" <santa@...>
Ruby本買って目から鱗を落としながら読んでいます。
[#18361] Proc in a loop — ttate@...
立石です。
[#18374] regular pattern — Katsuya Tanaka <tanaka@...>
まつもと ゆきひろです
[#18408] [BUG] debug.rb(?) — Chikanaga Tomoyuki <hekitou@...>
近永です。
[#18420] bindrv on oracle — 中村暁史 Nakamura Akifumi <BXQ04723@...>
[#18447] mswin32 でのファイル名の大 / 小文字 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#18467] Array doesn't include Comparable — kjana@... (YANAGAWA Kazuhisa)
Array#<=> が定義されてるのに not Array < Comparable なのは何か理由があ
[#18476] paramclass — gotoken@... (GOTO Kentaro)
ごとけんです
[#18485] Linux magazine 12/1999 — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
なひです.
[#18494] `make test' failure on Cygwin build w/ --enable-shared — Mimpei MORISHITA <mimpei@...>
森下 @ CAC と申します。
[#18501] 関数 ` の動作 — Keisuke CHIBA <chiba@...>
ちばと申します.
[#18517] 自分の IP を獲得する方法 — Suguru Kakishita <kakky@...>
柿下です
[#18526] アイコンコンテスト(ファイル用) — Hoshino Hitoshi <zin@...>
星野(Zin)と申します。
[#18533] cover animal for Ruby book — Koretsugu Daigoro <tmmcross@...>
これつぐです。
[#18539] [book] $*, etc. — Yasuhiro Fukuma <yasuf@...>
福間@福岡 です。
ごとけんです
At Mon, 15 Nov 1999 17:49:27 +0900,
ごとけんです
小林です。
[#18545] 変数の型チェック — "Hideaki Takata" <hideakit@...3.dion.ne.jp>
高田です。
[#18580] — tokoma@... (中川 誠)
中川です。
もとの質問のかたとは別の中川です。
中川です。
中川です。長文で失礼します。
中川です。
まつもと ゆきひろです
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
[#18582] Regexp source — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
こんばんは、ZnZです。
新井です。
[#18584] [REQ] [].grep(pat) #=> [] — gotoken@... (GOTO Kentaro)
ごとけんです
立石です。
[#18603] coding style — Shugo Maeda <shugo@...>
前田です。
[#18608] swigruby-0.3 — Masaki Fukushima <fukusima@...>
福嶋です。
[#18632] header output in eruby — TAKEUCHi Kahori <take-k@...>
こんにちは、たけうちと申します。
[#18637] constant? — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
わたなべです.
もりきゅうです。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
あおきです。
[#18638] fibonacci — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
[#18666] FileTest on NT — Keisuke CHIBA <chiba@...>
ちばと申します.
[#18668] rand — Ito Kazumitsu <ito@...>
伊藤と申します。
[#18687] Re: header output in eruby — TAKEUCHi Kahori (竹内かほり) <take-k@...>
たけうちです。
[#18709] ADO にて datetime 型の取得 — Takashi SHIODA <tsio@...>
塩田です。
助田です.
オレンジソフト塩田です。
助田です.
わたなべです.
なひです.
[#18712] Re: header output in eruby — TAKEUCHi Kahori <take-k@...>
たけうちです。
なひです.
まつもと ゆきひろです
まつもと ゆきひろです
なひです.
[#18741] Re: Why Mix-in? (Re: [book] $*, etc.) — Toyofuku <toyofuku@...>
豊福です。
まつもと ゆきひろです
[#18773] [Q] mod_ruby を使用したスクリプトについて — Yamada Kenji <kyamada@...>
[#18788] super — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
こんばんは、ZnZです。
[#18801] Re: super — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。ちょいと長文。
[#18807] protected なメソッドの再定義 — YAMASHITA Junji (山下 純司) <ys_jyunji@...>
山下 純司です。
[#18830] mod_ruby-0.1.4 — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
In message "[ruby-list:18830] mod_ruby-0.1.4"
高橋征義です。
なひです.
高橋です。
[#18833] delete array member inside each block — Kikutani Makoto <kikutani@...>
たとえば、「整数の配列の偶数メンバーだけ消す」みたいのは
[#18852] Re: Why Mix-in? (Re: [book] $*, etc.) — Toyofuku <toyofuku@...>
豊福です。
[#18853] initializer polymorphism? — Takeyuki Watadani <watadani@...>
渡谷といいます。
In message "[ruby-list:18853] initializer polymorphism?"
渡谷です。すばやい回答ありがとうございます。
ごとけんです
福嶋です。
ごとけんです
石橋秀仁です。無用の情報です。
立石です。
[#18868] Singleton の instance が複数になることがある — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
こんばんは、ZnZです。
[#18896] Database and Object Oriented Programming — Akihiro Yamauchi <aygoofy@...>
こんばんは。
[#18911] Re: eRuby 変換後の無駄 (?) な改行 — TAKEUCHi Kahori <take-k@...>
たけうちです。
松尾です。
前田です。
こんばんは、ZnZです。
前田です。
[#18914] Ruby standard GUI framework? — Hideto ISHIBASHI <s34204@...>
石橋秀仁です。
石橋秀仁です。
石橋秀仁です。
石橋秀仁です。
田中@ISASです。ruby-listの方は初めてです。よろしくおねがいします。
たかたです。
石橋秀仁です。
石橋秀仁%オープンソース原理主義者です。
In message <19991206121518W.s34204@vip.cis.kurume-nct.ac.jp>
[#18941] ruby-1.4.2 for Human68k について — IWATSUKI Hiroyuki <don@...>
はじめまして、岩月と申します。
[#18948] 他言語との比較 — とみたまさひろ <tommy@...>
とみたです。
[#18961] or と || の違い — Ayanosuke <aya@...>
館林と申します。
川戸と申します。はじめまして。
[#18994] ftplib で日付の詳細な list を得たい — Hiroshi Saito <HiroshiSaito@...>
こんにちは、サイトウです。
[ruby-list:18476] paramclass
ごとけんです
パラメーター付きのクラスを支援するMix-inモジュールParametric
とParametricのサブクラス生成のためのインターフェイスを含む
paramclass.rb を送ります。
以下が全機能を使った例。いろいろカッコ悪いので改良は歓迎。
class Foo
include Parametric
def default_parameters # デフォルトパラメータの配列
["foo", 10]
end
end
include ClassParameterizer
Parametric Foo # Parametric宣言: 以下でFoo()が使える
Foo.parameters #=> ["foo", 10]
Foo(10, "foo", 20).parameters #=> [10, "foo", 20]
Foo(10, "foo", 20).rootclass #=> Foo
foo = Foo(10).new
foo.parameters #=> [10]
-- gotoken
Attachments (1)
=begin
= Mix-in module Parametric
== DESCRIPTION
Parametric is the mix-in module for the parametric class.
The including class must provide a class method default_parameters.
The method default_parameters must returns the default parameters
as an array and this method is used for the subclass generarion
by ClassParameterizer::Parametric.
== CLASS METHOD
: parameters
Returns parameters as an array. For a Parametric class Foo,
the value of Foo(10).parameters is [10]
: rootclass
Returns the root class. For a Parametric class Foo, the value of
Foo(10).rootclass is Foo.
== METHOD
: parameters
Returns parameters as an array. Same as parameters class method.
== EXAMPLE
class Foo
include Parametric
def default_parameters
["foo", 10]
end
end
include ClassParameterizer
Parametric Foo
Foo(10, "foo", 20).parameters #=> [10, "foo", 20]
Foo(10, "foo", 20).rootclass #=> [10, "foo", 20]
foo = Foo(10).new
foo.parameters #=> [10]
= Module ClassParameterizer
== DESCRIPTION
ClassParameterizer is the utility module for Parametric class.
== MODULE METHOD
: Parametric class1, class2, ...
Works as a declaration. For each class of options, Parametric
defines the same name fuction, which takes options as parameters
and returns a class.
== VERSION
19991108
== AUTHOR
Gotoken <gotoken@notwork.org>
=end
module ClassParameterizer
ClassParameters = {}
RootClasses = {}
def Parametric(*klasses)
klasses.each do |klass|
klass < Parametric or
raise TypeError, "non Parametric class `#{klass}' "
next if RootClasses.include?(klass)
cn = klass.name
eval "def #{cn}(*args); #{cn}.instance_eval{class_generator(*args)} end"
ClassParameterizer::ClassParameters[klass] = klass.default_parameters
end
end
module_function :Parametric
end
module Parametric
def Parametric.append_features(mod)
super mod
mod.const_set("CLASSLIST", {nil,mod})
def mod.class_generator(*args)
klass = self::CLASSLIST[args] || self::CLASSLIST[args] = Class.new(self)
ClassParameters[klass] = args
RootClasses[klass] = self
klass
end
def mod.parameters
ClassParameterizer::ClassParameters[self]
end
def mod.rootclass
ClassParameterizer::RootClasses[self]
end
end
def parameters
self.type.parameters
end
end
########## devel test ##########
if __FILE__ == $0
def xmp(arg) # prints expample code and result line by line
__res__ = []
eval arg.gsub(/^(.*)\n?/){"__res__ << (#{$1}).inspect;"}
arg.split(/\n/).each_with_index{|l,i|
(puts "\n" ; next) if l =~ /^$/
print "#{l}\n ==> #{__res__[i]}\n"
}
end
class C
include Parametric
def C.default_parameters
[100]
end
end
include ClassParameterizer
xmp <<EOS
Parametric C
C.parameters
C(10).id == C(10).id
C(20,10) < C
C(10).parameters
C(10).rootclass
C(10).new
D = C(0)
Parametric C
D.id == C(0).id
EOS
end