Class: Pluct::Resource
- Inherits:
-
Object
- Object
- Pluct::Resource
- Includes:
- Helpers::Request
- Defined in:
- lib/pluct/resource.rb
Constant Summary
Constants included from Helpers::Request
Helpers::Request::DEFAULT_HEADERS
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
-
#schema ⇒ Object
readonly
Returns the value of attribute schema.
-
#uri ⇒ Object
readonly
Returns the value of attribute uri.
Instance Method Summary collapse
-
#initialize(uri, response = nil) ⇒ Resource
constructor
A new instance of Resource.
- #method_missing(method, *args) ⇒ Object
Constructor Details
#initialize(uri, response = nil) ⇒ Resource
Returns a new instance of Resource.
7 8 9 10 11 12 13 14 |
# File 'lib/pluct/resource.rb', line 7 def initialize(uri, response = nil) @uri = uri @response = response || get(@uri) @data ||= (JSON.is_json?(@response.body) ? JSON.parse(@response.body, {symbolize_names: true}) : {}) @schema = Schema.from_header(@response.headers) Resource.create_methods(@schema.links) if @schema end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
16 17 18 |
# File 'lib/pluct/resource.rb', line 16 def method_missing(method, *args) @data[method] || super end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
5 6 7 |
# File 'lib/pluct/resource.rb', line 5 def data @data end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
5 6 7 |
# File 'lib/pluct/resource.rb', line 5 def response @response end |
#schema ⇒ Object (readonly)
Returns the value of attribute schema.
5 6 7 |
# File 'lib/pluct/resource.rb', line 5 def schema @schema end |
#uri ⇒ Object (readonly)
Returns the value of attribute uri.
5 6 7 |
# File 'lib/pluct/resource.rb', line 5 def uri @uri end |