Class: ROM::Solr::RequestHandler
- Inherits:
-
Object
- Object
- ROM::Solr::RequestHandler
- Defined in:
- lib/rom/solr/request_handler.rb
Instance Attribute Summary collapse
-
#dataset ⇒ Object
readonly
Returns the value of attribute dataset.
Class Method Summary collapse
Instance Method Summary collapse
- #execute ⇒ Object
- #headers ⇒ Object
-
#initialize(dataset) ⇒ RequestHandler
constructor
A new instance of RequestHandler.
- #request ⇒ Object
- #request_class ⇒ Object
- #uri ⇒ Object
Constructor Details
#initialize(dataset) ⇒ RequestHandler
Returns a new instance of RequestHandler.
11 12 13 |
# File 'lib/rom/solr/request_handler.rb', line 11 def initialize(dataset) @dataset = dataset end |
Instance Attribute Details
#dataset ⇒ Object (readonly)
Returns the value of attribute dataset.
9 10 11 |
# File 'lib/rom/solr/request_handler.rb', line 9 def dataset @dataset end |
Class Method Details
.call(dataset) ⇒ Object
5 6 7 |
# File 'lib/rom/solr/request_handler.rb', line 5 def self.call(dataset) new(dataset).execute end |
Instance Method Details
#execute ⇒ Object
15 16 17 18 19 |
# File 'lib/rom/solr/request_handler.rb', line 15 def execute Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme.eql?('https')) do |http| http.request(request) end end |
#headers ⇒ Object
30 31 32 |
# File 'lib/rom/solr/request_handler.rb', line 30 def headers dataset.headers.transform_keys(&:to_s) end |
#request ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/rom/solr/request_handler.rb', line 21 def request request_class.new(uri.request_uri, headers).tap do |req| if dataset.has_request_data? req.body = dataset.request_data req.content_type = dataset.content_type end end end |
#request_class ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/rom/solr/request_handler.rb', line 42 def request_class if dataset.has_request_data? Net::HTTP::Post else Net::HTTP::Get end end |
#uri ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/rom/solr/request_handler.rb', line 34 def uri @uri ||= URI(dataset.uri).tap do |u| if dataset.has_params? u.query ||= URI.encode_www_form(dataset.params) end end end |