2 module AdvAttrAccessor
#:nodoc:
3 def self.included(base
)
4 base
.extend(ClassMethods
)
7 module ClassMethods
#:nodoc:
8 def adv_attr_accessor(*names
)
12 define_method("#{name}=") do |value
|
13 instance_variable_set(ivar
, value
)
16 define_method(name
) do |*parameters
|
17 raise ArgumentError
, "expected 0 or 1 parameters" unless parameters
.length
<= 1
19 if instance_variable_names
.include?(ivar
)
20 instance_variable_get(ivar
)
23 instance_variable_set(ivar
, parameters
.first
)