Method: Dynomite::Item#initialize

Defined in:
lib/dynomite/item.rb

#initialize(attrs = {}, &block) ⇒ Item

Returns a new instance of Item.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/dynomite/item.rb', line 39

def initialize(attrs={}, &block)
  run_callbacks(:initialize) do
    @new_record = true
    attrs = attrs.to_hash if attrs.respond_to?(:to_hash) # IE: ActionController::Parameters
    raise ArgumentError, "attrs must be a Hash. attrs is a #{attrs.class}" unless attrs.is_a?(Hash)
    @attrs = ActiveSupport::HashWithIndifferentAccess.new(attrs)
    attrs.each do |k,v|
      send("#{k}=", v) if respond_to?("#{k}=") # so typecasting happens
    end
    @associations = {}

    if block
      yield(self)
    end
  end
end