引数にメソッド追加してリテラル風にするんだったら
その後、色々考えていたらわざわざ専用クラスを作るような
小難しいことは考えずにハッシュを作るようにして
それを渡せば良いじゃん。って事に気づきました。
http://d.hatena.ne.jp/takkaw/20080721/p1
そこまでするなら、もういっその事インスタンス変数名まで指定しちゃったらいいんじゃね? とかおもた。
あと、個別にeachするならわざわざHashにしないでArrayの方が面倒がなくてよさそう。
# 仕込み class Numeric def hz ; [:@sample_rate, self] ; end def khz ; [:@sample_rate, self * 1000] ; end def bit ; [:@sample_bit, self] ; end def channel ; [:@channels, self] ; end def ch ; [:@channels, self] ; end end # 実際のWavクラス class Wav def initialize *args args.each do |name, value| instance_variable_set name, value end end end