Class: Theguardian::Api::Item

Inherits:
RecursiveOpenStruct
  • Object
show all
Defined in:
lib/theguardian/api/item.rb

Class Method Summary collapse

Instance Method Summary collapse

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

#fetchObject



16
17
18
# File 'lib/theguardian/api/item.rb', line 16

def fetch
	self.class.process({ id: URI(self.apiUrl).path })
end