Hi,

as I notice there is a difference between `class_eval' called
with a block or with a string. Why?

Bertram

--------------------
VERSION = :braces

module M
  def self.included c
    case VERSION
      when :braces then  c.class_eval {@@m = rand}
      when :quotes then  c.class_eval "@@m = rand"
    end
  end
end

class C ; @@m = "M" ; def d ; puts @@m ; end ; end
class D ; @@m = "M" ; def d ; puts @@m ; end ; end

class C ; puts @@m ; end
class D ; puts @@m ; end
C.new.d
D.new.d

class C ; include M ; end
class D ; include M ; end

class C ; puts @@m ; end
class D ; puts @@m ; end
C.new.d
D.new.d

--------------------


-- 
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de