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
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
62
63
64
|
# File 'lib/api_model/response.rb', line 62
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
36
37
38
39
40
41
42
|
# File 'lib/api_model/response.rb', line 36
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
34
|
# 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
raise ServerError if @_config.raise_on_server_error && http_response.api_call.response_code == 500
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
44
45
46
|
# File 'lib/api_model/response.rb', line 44
def response_body
@response_body ||= @_config.parser.parse http_response.api_call.body
end
|
#successful? ⇒ Boolean
48
49
50
|
# File 'lib/api_model/response.rb', line 48
def successful?
http_response.api_call.success?
end
|