class Module
Public Instance Methods
mattr_reader(*syms) { || ... }
click to toggle source
# File lib/attribute_accessors.rb, line 3 def mattr_reader(*syms) syms.each do |sym| raise NameError.new("invalid attribute name: #{sym}") unless sym =~ /^[_A-Za-z]\w*$/ class_eval(<<-EOS, __FILE__, __LINE__ + 1) @@#{sym} = nil unless defined? @@#{sym} def self.#{sym} @@#{sym} end EOS class_eval(<<-EOS, __FILE__, __LINE__ + 1) def #{sym} @@#{sym} end EOS class_variable_set("@@#{sym}", yield) if block_given? end end