Class: Pluct::Resource

Inherits:
Object
  • Object
show all
Includes:
Helpers::Request
Defined in:
lib/pluct/resource.rb

Constant Summary

Constants included from Helpers::Request

Helpers::Request::DEFAULT_HEADERS

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#dataObject (readonly)

Returns the value of attribute data.



5
6
7
# File 'lib/pluct/resource.rb', line 5

def data
  @data
end

#responseObject (readonly)

Returns the value of attribute response.



5
6
7
# File 'lib/pluct/resource.rb', line 5

def response
  @response
end

#schemaObject (readonly)

Returns the value of attribute schema.



5
6
7
# File 'lib/pluct/resource.rb', line 5

def schema
  @schema
end

#uriObject (readonly)

Returns the value of attribute uri.



5
6
7
# File 'lib/pluct/resource.rb', line 5

def uri
  @uri
end