186ca69c051bc89a69b22143f601fdacff59780b
1 # Extends the class object with class and instance accessors for class attributes,
2 # just like the native attr* accessors for instance attributes.
5 # cattr_accessor :hair_colors
8 # Person.hair_colors = [:brown, :black, :blonde, :red]
10 def cattr_reader(*syms
)
11 syms
.flatten
.each
do |sym
|
12 next if sym
.is_a
?(Hash
)
13 class_eval(<<-EOS, __FILE__, __LINE__)
14 unless defined? @@#{sym}
29 def cattr_writer(*syms
)
30 options
= syms
.extract_options
!
31 syms
.flatten
.each
do |sym
|
32 class_eval(<<-EOS, __FILE__, __LINE__)
33 unless defined? @@#{sym}
45 " unless options[:instance_writer] == false }
50 def cattr_accessor(*syms
)