Class: Bound::ObjectSeeder

Inherits:
Object
  • Object
show all
Defined in:
lib/bound.rb

Instance Method Summary collapse

Constructor Details

#initialize(receiver) ⇒ ObjectSeeder

Returns a new instance of ObjectSeeder.



272
273
274
# File 'lib/bound.rb', line 272

def initialize(receiver)
  @receiver = receiver
end

Instance Method Details

#seed(object) ⇒ Object



276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
# File 'lib/bound.rb', line 276

def seed(object)
  @receiver.get_attributes.each do |attribute|
    begin
      value = attribute.call_on(object)
    rescue NoMethodError
      value = nil
      raise ArgumentError, "missing #{attribute.name}" if attribute.required?
    end

    method = "#{attribute.name}="
    if @receiver.respond_to?(method)
      @receiver.send method, value
    else
      raise NoMethodError, "undefined method `#{method}' for #{self}"
    end
  end
end