From: Derek Chesterfield Date: 2005-09-26T23:59:18+09:00 Subject: class_eval Stealing someone else's recent example code, what is the difference between this: > class A > def meth2 > puts "I'm meth2. I try to access something I ain't > allowed: #{static_var}" > end > static_var = 3 > define_method(:meth3) do > puts "I'm meth3. I'm allowed to access #{static_var}" > end > end > a = A.new > a.meth3 > a.meth2 and this, which seems to do the same thing, but without the class_eval: > class B > def meth2 > puts "I'm meth2. I try to access something I ain't > allowed: #{static_var}" > end > class_eval do > static_var = 3 > define_method(:meth3) do > puts "I'm meth3. I'm allowed to access #{static_var}" > end > end > end > b = B.new > b.meth3 > b.meth2 In other words, what does class_eval do that I'm not understanding?!