Class: ModelFactory::InstanceBuilder

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

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(instance, params, counter, &block) ⇒ InstanceBuilder

Returns a new instance of InstanceBuilder.



53
54
55
56
57
58
59
# File 'lib/modelfactory/factory.rb', line 53

def initialize(instance, params, counter, &block)
  @instance = instance
  @params = params || {}
  @counter = counter
  @params.each { |attr, value| @instance.send "#{attr}=", value }
  instance_eval(&block) if block_given?
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, &block) ⇒ Object



61
62
63
64
65
66
67
68
# File 'lib/modelfactory/factory.rb', line 61

def method_missing(method, &block)
  if block_given? && !@params.key?(method.to_sym)
    @instance.send "#{method}=",
      (block.arity == 1) ?
        @instance.instance_exec(@counter, &block) :
        @instance.instance_eval(&block)
  end
end