irb(main):001:0> my_var = "Success"
=> "Success"
irb(main):002:0> MyClass = Class.new do
irb(main):003:1* puts "#{my_var} in Class Define!"
irb(main):004:1> define_method :my_method do
irb(main):005:2* puts "#{my_var} in Method Define!"
irb(main):006:2> end
irb(main):007:1> end
Success in Class Define!
=> MyClass
irb(main):008:0> obj = MyClass.new
=>
irb(main):009:0> obj.my_method
Success in Method Define!
=> nil
irb(main):010:0>
irb(main):014:0* class MyClass
irb(main):015:1> def initialize
irb(main):016:2> @v = 1
irb(main):017:2> end
irb(main):018:1> end
=> nil
irb(main):019:0> obj = MyClass.new
=>
irb(main):020:0> obj.instance_eval do
irb(main):021:1* self
irb(main):022:1> @v
irb(main):023:1> end
=> 1
irb(main):024:0> v = 2
=> 2
irb(main):025:0> obj.instance_eval { @v = v }
=> 2
irb(main):026:0> obj.instance_eval { @v }
=> 2
irb(main):027:0> v = 10
=> 10
irb(main):028:0> obj.instance_eval { v }
=> 10
irb(main):029:0>
irb(main):030:0* inc = Proc.new {|x| x + 1}
=>
irb(main):031:0> inc.call(10)
=> 11
irb(main):032:0>
irb(main):033:0* dec = lambda {|x| x - 1}
=>
irb(main):034:0> dec.call(10)
=> 9
irb(main):035:0> inc.class
=> Proc
irb(main):036:0>
irb(main):037:0* dec.class
=> Proc