class ROM::Solr::RequestHandler

Attributes

dataset[R]

Public Class Methods

call(dataset) click to toggle source
# File lib/rom/solr/request_handler.rb, line 5
def self.call(dataset)
  new(dataset).execute
end
new(dataset) click to toggle source
# File lib/rom/solr/request_handler.rb, line 11
def initialize(dataset)
  @dataset = dataset
end

Public Instance Methods

execute() click to toggle source
# 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() click to toggle source
# File lib/rom/solr/request_handler.rb, line 30
def headers
  dataset.headers.transform_keys(&:to_s)
end
request() click to toggle source
# File lib/rom/solr/request_handler.rb, line 21
def request
  request_class.new(uri.request_uri, headers).tap do |req|
    if dataset.request_data?
      req.body = dataset.request_data
      req.content_type = dataset.content_type
    end
  end
end
request_class() click to toggle source
# File lib/rom/solr/request_handler.rb, line 42
def request_class
  if dataset.request_data?
    Net::HTTP::Post
  else
    Net::HTTP::Get
  end
end
uri() click to toggle source
# File lib/rom/solr/request_handler.rb, line 34
def uri
  @uri ||= URI(dataset.uri).tap do |u|
    if dataset.params?
      u.query ||= URI.encode_www_form(dataset.params)
    end
  end
end