Class: LittleBird::ResponseType
- Inherits:
-
Object
- Object
- LittleBird::ResponseType
show all
- Defined in:
- lib/littlebird_api_client/response_type.rb
Direct Known Subclasses
APIStructure, Community, CompareResult, DiscoverURL, Download, Graph, GraphAttribute, ScreenNameResolution, Topic, Tweet, User, UserMetric
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of ResponseType.
3
4
5
6
7
8
9
|
# 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
|
Class Method Details
.timestamped_keys ⇒ Object
19
20
21
|
# File 'lib/littlebird_api_client/response_type.rb', line 19
def self.timestamped_keys
["created_at", "started_at", "updated_at", "finished_at"]
end
|
Instance Method Details
#attribute_names ⇒ Object
34
35
36
|
# File 'lib/littlebird_api_client/response_type.rb', line 34
def attribute_names
instance_variables.collect{|ivar| ivar.to_s.gsub("@", "")}
end
|
#attributes ⇒ Object
30
31
32
|
# 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) ⇒ Object
11
12
13
|
# 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) ⇒ Object
15
16
17
|
# 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) ⇒ Object
23
24
25
26
27
28
|
# 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 ⇒ Object
38
39
40
|
# File 'lib/littlebird_api_client/response_type.rb', line 38
def useful_attribute_names
attribute_names-["client"]
end
|