class Urbanairship::Devices::Attributes

Constants

REMOVE
SET

Public Class Methods

new(attributes) click to toggle source
# File lib/urbanairship/devices/attributes.rb, line 9
def initialize(attributes)
  @attributes = attributes
end

Public Instance Methods

payload() click to toggle source
# File lib/urbanairship/devices/attributes.rb, line 13
def payload
  @payload ||= { attributes: attributes_list }
end

Private Instance Methods

attribute_payload(attribute) click to toggle source
# File lib/urbanairship/devices/attributes.rb, line 23
def attribute_payload(attribute)
  if REMOVE == attribute[:action]
    remove_payload(attribute)
  else
    set_payload(attribute)
  end
end
attributes_list() click to toggle source
# File lib/urbanairship/devices/attributes.rb, line 19
def attributes_list
  @attributes.map{ |attribute| attribute_payload(attribute) }
end
remove_payload(attribute) click to toggle source
# File lib/urbanairship/devices/attributes.rb, line 40
def remove_payload(attribute)
  {
    action: REMOVE,
    key: attribute[:key],
    timestamp: (attribute[:timestamp] || timestamp).iso8601,
  }
end
set_payload(attribute) click to toggle source
# File lib/urbanairship/devices/attributes.rb, line 31
def set_payload(attribute)
  {
    action: SET,
    key: attribute[:key],
    value: attribute[:value],
    timestamp: (attribute[:timestamp] || timestamp).iso8601,
  }
end
timestamp() click to toggle source
# File lib/urbanairship/devices/attributes.rb, line 48
def timestamp
  @timestamp ||= Time.now.utc
end