Class: Theguardian::Api::Item
- Inherits:
-
RecursiveOpenStruct
- Object
- RecursiveOpenStruct
- Theguardian::Api::Item
- Defined in:
- lib/theguardian/api/item.rb
Class Method Summary collapse
Instance Method Summary collapse
- #fetch ⇒ Object
-
#initialize(*params) ⇒ Item
constructor
A new instance of Item.
Constructor Details
#initialize(*params) ⇒ Item
Returns a new instance of Item.
4 5 6 7 8 9 |
# File 'lib/theguardian/api/item.rb', line 4 def initialize(*params) content = params.first["content"] ? params.first.merge(params.first["content"]["fields"] ) : params.first item_params = params.first["fields"] || content super(item_params, params.last) end |
Class Method Details
.process(params) ⇒ Object
11 12 13 14 |
# File 'lib/theguardian/api/item.rb', line 11 def self.process(params) connection = Theguardian::Connection.new(resource: params.delete(:id)) self.new(connection.get(self.process_params(params)), recurse_over_arrays: true) end |
.process_params(params) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/theguardian/api/item.rb', line 20 def self.process_params(params) # The item id theguardian_api_params = { id: params[:id] } # The show fields theguardian_api_params.merge!({ "show-fields" => params[:fields] || "all" }) theguardian_api_params.reject{ |_, value| value.nil? } end |
Instance Method Details
#fetch ⇒ Object
16 17 18 |
# File 'lib/theguardian/api/item.rb', line 16 def fetch self.class.process({ id: URI(self.apiUrl).path }) end |