Class: JsonApiClient::Query::Base
- Inherits:
-
Object
- Object
- JsonApiClient::Query::Base
- Defined in:
- lib/json_api_client/query/base.rb
Instance Attribute Summary collapse
-
#headers ⇒ Object
readonly
Returns the value of attribute headers.
-
#klass ⇒ Object
readonly
Returns the value of attribute klass.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
Instance Method Summary collapse
- #build_params(args) ⇒ Object
- #build_path(parameters) ⇒ Object
-
#initialize(klass, args) ⇒ Base
constructor
A new instance of Base.
- #inspect ⇒ Object
Constructor Details
#initialize(klass, args) ⇒ Base
Returns a new instance of Base.
9 10 11 12 13 14 |
# File 'lib/json_api_client/query/base.rb', line 9 def initialize(klass, args) @klass = klass build_params(args) @headers = klass.default_headers.dup build_path(@params) end |
Instance Attribute Details
#headers ⇒ Object (readonly)
Returns the value of attribute headers.
7 8 9 |
# File 'lib/json_api_client/query/base.rb', line 7 def headers @headers end |
#klass ⇒ Object (readonly)
Returns the value of attribute klass.
7 8 9 |
# File 'lib/json_api_client/query/base.rb', line 7 def klass @klass end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
7 8 9 |
# File 'lib/json_api_client/query/base.rb', line 7 def params @params end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
7 8 9 |
# File 'lib/json_api_client/query/base.rb', line 7 def path @path end |
Instance Method Details
#build_params(args) ⇒ Object
28 29 30 |
# File 'lib/json_api_client/query/base.rb', line 28 def build_params(args) @params = args.dup end |
#build_path(parameters) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/json_api_client/query/base.rb', line 16 def build_path(parameters) @path = begin p = klass.path(parameters) if parameters.has_key?(klass.primary_key) && !parameters[klass.primary_key].is_a?(Array) resource_id = parameters.delete(klass.primary_key).to_s encoded_resource_id = Addressable::URI.encode_component(resource_id, Addressable::URI::CharacterClasses::UNRESERVED) p = File.join(p, encoded_resource_id) end p end end |
#inspect ⇒ Object
32 33 34 |
# File 'lib/json_api_client/query/base.rb', line 32 def inspect "#{self.class.name}: method: #{request_method}; path: #{path}; params: #{params}, headers: #{headers}" end |