Module: Formeze::ArrayAttrAccessor

Included in:
ClassMethods
Defined in:
lib/formeze.rb

Instance Method Summary collapse

Instance Method Details

#array_attr_accessor(name) ⇒ Object



183
184
185
186
# File 'lib/formeze.rb', line 183

def array_attr_accessor(name)
  array_attr_reader(name)
  array_attr_writer(name)
end

#array_attr_reader(name) ⇒ Object



167
168
169
170
171
172
173
# File 'lib/formeze.rb', line 167

def array_attr_reader(name)
  define_method(name) do
    ivar = :"@#{name}"

    instance_variable_defined?(ivar) ? Array(instance_variable_get(ivar)) : []
  end
end

#array_attr_writer(name) ⇒ Object



175
176
177
178
179
180
181
# File 'lib/formeze.rb', line 175

def array_attr_writer(name)
  define_method(:"#{name}=") do |value|
    ivar = :"@#{name}"

    instance_variable_set(ivar, send(name) + [value])
  end
end