Class: ApiModel::Response
- Inherits:
-
Object
- Object
- ApiModel::Response
show all
- Defined in:
- lib/api_model/response.rb
Constant Summary
collapse
- FALL_THROUGH_METHODS =
[
:class, :nil?, :empty?, :acts_like?, :as_json, :blank?, :duplicable?,
:eval_js, :html_safe?, :in?, :presence, :present?, :psych_to_yaml, :to_json,
:to_param, :to_query, :to_yaml, :to_yaml_properties, :with_options, :is_a?,
:respond_to?, :kind_of?
]
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(http_response, config) ⇒ Response
Returns a new instance of Response.
12
13
14
15
|
# File 'lib/api_model/response.rb', line 12
def initialize(http_response, config)
@http_response = http_response
@_config = config || Configuration.new
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
57
58
59
|
# File 'lib/api_model/response.rb', line 57
def method_missing(method_name, *args, &block)
objects.send method_name, *args, &block
end
|
Instance Attribute Details
#http_response ⇒ Object
Returns the value of attribute http_response.
10
11
12
|
# File 'lib/api_model/response.rb', line 10
def http_response
@http_response
end
|
#objects ⇒ Object
Returns the value of attribute objects.
10
11
12
|
# File 'lib/api_model/response.rb', line 10
def objects
@objects
end
|
Instance Method Details
#build(builder, hash) ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/api_model/response.rb', line 35
def build(builder, hash)
if builder.respond_to? :build
builder.build hash
else
builder.new hash
end
end
|
#build_objects ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/api_model/response.rb', line 21
def build_objects
raise UnauthenticatedError if @_config.raise_on_unauthenticated && http_response.api_call.response_code == 401
raise NotFoundError if @_config.raise_on_not_found && http_response.api_call.response_code == 404
return if response_body.nil?
if response_build_hash.is_a? Array
self.objects = response_build_hash.collect{ |hash| build http_response.builder, hash }
else
self.objects = self.build http_response.builder, response_build_hash
end
self
end
|
17
18
19
|
# File 'lib/api_model/response.rb', line 17
def metadata
@metadata ||= OpenStruct.new
end
|
#response_body ⇒ Object
43
44
45
|
# File 'lib/api_model/response.rb', line 43
def response_body
@response_body ||= @_config.parser.parse http_response.api_call.body
end
|