Class: Parliament::Request::OpenSearchRequest
- Inherits:
-
BaseRequest
- Object
- BaseRequest
- Parliament::Request::OpenSearchRequest
- Defined in:
- lib/parliament/request/open_search_request.rb
Overview
API request object, allowing the user to build a request to an OpenSearch API and build a response.
attr [Hash] templates the different types and template urls set from the OpenSearch API description document.
Constant Summary collapse
- OPEN_SEARCH_PARAMETERS =
{ count: 10, start_index: 1, start_page: 1, language: '*', output_encoding: 'UTF-8', input_encoding: 'UTF-8' }.freeze
Class Attribute Summary collapse
Instance Attribute Summary collapse
- #description_url ⇒ Object readonly
- #templates ⇒ Object readonly
Class Method Summary collapse
Instance Method Summary collapse
-
#get(search_params, type: nil, params: nil) ⇒ Object
Sets up the query url using the base_url and parameters, then make an HTTP GET request and process results.
-
#initialize(description_url: nil, headers: nil, builder: nil) ⇒ OpenSearchRequest
constructor
Creates a new instance of Parliament::OpenSearch::Request.
Constructor Details
#initialize(description_url: nil, headers: nil, builder: nil) ⇒ OpenSearchRequest
Creates a new instance of Parliament::OpenSearch::Request.
An interesting note for #initialize is that setting description_url on the class means you don’t need to pass in a description_url. You can pass one anyway to override the class parameter. Similarly, headers can be set by either settings the headers on the class, or passing headers in.
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/parliament/request/open_search_request.rb', line 29 def initialize(description_url: nil, headers: nil, builder: nil) @description_url = description_url ||= self.class.description_url raise Parliament::OpenSearch::DescriptionError.new(@description_url), 'No description URL passed to Parliament::OpenSearchRequest#new and, no Parliament::OpenSearchRequest#base_url value set. Without a description URL, we are unable to make any search requests.' if @description_url.nil? && self.class.templates.nil? @templates = Parliament::OpenSearch::DescriptionCache.fetch(@description_url) @open_search_parameters = self.class.open_search_parameters super(base_url: nil, headers: headers, builder: builder) end |
Class Attribute Details
.description_url ⇒ Object
55 56 57 |
# File 'lib/parliament/request/open_search_request.rb', line 55 def description_url @description_url end |
.templates ⇒ Object (readonly)
55 56 57 |
# File 'lib/parliament/request/open_search_request.rb', line 55 def templates @templates end |
Instance Attribute Details
#description_url ⇒ Object (readonly)
8 9 10 |
# File 'lib/parliament/request/open_search_request.rb', line 8 def description_url @description_url end |
#templates ⇒ Object (readonly)
8 9 10 |
# File 'lib/parliament/request/open_search_request.rb', line 8 def templates @templates end |
Class Method Details
.open_search_parameters ⇒ Object
62 63 64 |
# File 'lib/parliament/request/open_search_request.rb', line 62 def open_search_parameters OPEN_SEARCH_PARAMETERS.dup end |
Instance Method Details
#get(search_params, type: nil, params: nil) ⇒ Object
Sets up the query url using the base_url and parameters, then make an HTTP GET request and process results.
46 47 48 49 50 |
# File 'lib/parliament/request/open_search_request.rb', line 46 def get(search_params, type: nil, params: nil) setup_query_url(search_params, type) super(params: params) end |