metaprogramming/anonymous_class.rb

tests/_examples/metaprogramming/anonymous_class.rb in the metorex repository.

cls = Class.new { def foo; 'foo'; end }
puts cls.new.foo

sub = Class.new(cls) { def baz; 'baz'; end }
obj = sub.new
puts obj.foo
puts obj.baz

m = Module.new { def bar; 'bar'; end }
puts m.class

Output:

foo
foo
baz
Module