class LittleBird::ResponseType

Public Class Methods

new(attrs) click to toggle source
# File lib/littlebird_api_client/response_type.rb, line 3
def initialize(attrs)
  attrs.each do |key, value|
    self.instance_eval { class << self; self end }.send(:attr_accessor, key.to_sym)
    self.send(key+"=", parse_value(key, value))
  end
  self
end
timestamped_keys() click to toggle source
# File lib/littlebird_api_client/response_type.rb, line 19
def self.timestamped_keys
  ["created_at", "started_at", "updated_at", "finished_at"]
end

Public Instance Methods

attribute_names() click to toggle source
# File lib/littlebird_api_client/response_type.rb, line 34
def attribute_names
  instance_variables.collect{|ivar| ivar.to_s.gsub("@", "")}
end
attributes() click to toggle source
# File lib/littlebird_api_client/response_type.rb, line 30
def attributes
  Hash[useful_attribute_names.zip(useful_attribute_names.map{|attribute| self.send(attribute)})]
end
parse_value(key, value) click to toggle source
# File lib/littlebird_api_client/response_type.rb, line 11
def parse_value(key, value)
  set_as_time_if_timestamp(key, value)
end
set_as_time_if_timestamp(key, value) click to toggle source
# File lib/littlebird_api_client/response_type.rb, line 15
def set_as_time_if_timestamp(key, value)
  self.class.timestamped_keys.include?(key)  && !value.nil? ? Time.parse(value) : value
end
to_json(*a) click to toggle source
# File lib/littlebird_api_client/response_type.rb, line 23
def to_json(*a)
  {
    'json_class'   => self.class.name,
    'data'         => attributes
  }.to_json(*a)
end
useful_attribute_names() click to toggle source
# File lib/littlebird_api_client/response_type.rb, line 38
def useful_attribute_names
  attribute_names-["client"]
end