Class: ROM::Solr::RequestHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/rom/solr/request_handler.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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

#datasetObject (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

#executeObject



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

#headersObject



30
31
32
# File 'lib/rom/solr/request_handler.rb', line 30

def headers
  dataset.headers.transform_keys(&:to_s)
end

#requestObject



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_classObject



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

#uriObject



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