1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
module M
C = 1
def foo
puts "foo: #{C}"
def foo2
puts "foo2: #{C}"
end
end
define_method(:bob) { puts "bob: #{C}"; }
end
class C
include M
C = 2
def bar
puts "bar: #{C}"
def bar2
puts "bar2: #{C}"
end
end
define_method(:baz) { puts "baz: #{C}" }
end
x = C.new
x.foo
x.foo2
x.bar
x.bar2
x.bob
x.baz
M.module_eval('def f; puts "f: #{C}"; end')
C.module_eval('def g; puts "g: #{C}"; end')
x.f
x.g
x.instance_eval('def h; puts "h: #{C}"; end')
x.h
|