class, module, defキーワードとeval系を使わないクラスメソッド定義がしたい(興味的な意味で)
class_method = Module.new { define_method(:foo) { :foo } } klass = Class.new.extend class_method p klass.foo #=> :foo
が、一番安易な手段だと思うのだけれど、もっと格好良い書き方が出来ないか模索中。
モジュールを使わずに書きたい。
ちなみに、もしdefとinstance_evalを許すなら、
klass = Class.new klass.instance_eval { def bar; :bar end } p klass.bar #=> :bar
と書けてしまう。
不思議。
こういう細かい部分をちゃんと理解できてない。