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