Method: Collins::Asset#initialize

Defined in:
lib/collins/asset.rb

#initialize(opts = {}) ⇒ Asset

Create an Asset

Parameters:

  • opts (Hash) (defaults to: {})

    Asset parameters

Options Hash (opts):

  • :tag (String)

    The asset tag

  • :created (String)

    The creation DateTime

  • :id (Fixnum)

    The ID of the asset

  • :status (String)

    The asset status

  • :type (String)

    The asset type

  • :updated (String)

    The update DateTime

  • :deleted (String)

    The delete DateTime



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/collins/asset.rb', line 87

def initialize opts = {}
  @extras = {}
  @addresses = []
  if opts.is_a?(String) then
    model = {:tag => opts}
  else
    model = opts
  end
  hash = symbolize_hash(model).inject({}) do |result, (k,v)|
    result[k.downcase] = v
    result
  end
  @created = parse_datetime hash.delete(:created).to_s
  @id = hash.delete(:id).to_s.to_i
  @status = hash.delete(:status).to_s
  @tag = hash.delete(:tag).to_s
  @type = hash.delete(:type).to_s
  @state = Collins::AssetState.from_json(hash.delete(:state))
  @updated = parse_datetime hash.delete(:updated).to_s
  @deleted = parse_datetime hash.delete(:deleted).to_s
  hash.each {|k,v| @extras[k] = v}
end