hi,
here is a snippet code in ROR''s attribure_accessor.rb. the usage of
class_eval is different with "class_eval(string, <, file,
<line>>)"
somewhat,
i don''t understand this usage, who can explain it more detail to me?
def cattr_writer(*syms)
syms.flatten.each do |sym|
class_eval(<<-EOS, __FILE__, __LINE__)
unless defined? @@#{sym}
@@#{sym} = nil
end
def self.#{sym}=(obj)
@@#{sym} = obj
end
def #{sym}=(obj)
@@#{sym} = obj
end
EOS
end
end
can it write as fellow:
def cattr_writer(*syms)
syms.flatten.each do |sym|
class_eval(<<-EOS
unless defined? @@#{sym}
@@#{sym} = nil
end
def self.#{sym}=(obj)
@@#{sym} = obj
end
def #{sym}=(obj)
@@#{sym} = obj
end
EOS, __FILE__, __LINE__)
end
end
--
Posted via http://www.ruby-forum.com/.