# The Book of Ruby - http://www.sapphiresteel.com

module X
end

class Y
	@@x = 10
	include X
end

X::module_eval{ define_method(:xyz){ puts("hello" ) } }
Y::class_eval{ define_method(:abc){ puts("hello, hello" ) } }
X::class_eval{ define_method(:xyz2){ puts("hello again" ) } }
Y::module_eval{ define_method(:abc2){ puts("hello, hello again" ) } }
String::class_eval{ define_method(:bye){ puts("goodbye" ) } }


ob = Y.new
ob.xyz
ob.abc
ob.xyz2
ob.abc2
"Hello".bye
p( Y.class_eval( "@@x" ) )		