Module: Firering::Instantiator

Included in:
Message, Room, Upload, User
Defined in:
lib/firering/instantiator.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) instantiate(conn, data, base_key = nil, &callback)



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/firering/instantiator.rb', line 4

def instantiate(conn, data, base_key = nil, &callback)
  instance = new
  instance.connection = conn

  attributes = data.is_a?(Hash) ? data : Yajl::Parser.parse(data, :symbolize_keys => true)
  attributes = attributes[base_key] if base_key
  attributes ||= Hash.new

  attributes.each do |key, val|
    value = ( key.to_s =~ /(_at|_on)$/ ) ? (Time.parse(val) rescue val) : val
    instance.send("#{key}=", value)
  end

  callback.call(instance) if callback
  instance
end