class Fragments::Requester

Attributes

cookies[R]
current_host[R]
current_url[R]
fragment_code[R]

Public Class Methods

call(*opts, &block) click to toggle source
# File lib/fragments/requester.rb, line 16
def self.call(*opts, &block)
  new(*opts).call(&block)
end
new(fragment_code:, current_host:, cookies:, current_url:) click to toggle source
# File lib/fragments/requester.rb, line 9
def initialize(fragment_code:, current_host:, cookies:, current_url:)
  @fragment_code = fragment_code
  @current_host = current_host
  @cookies = cookies
  @current_url = current_url
end

Public Instance Methods

call() click to toggle source
# File lib/fragments/requester.rb, line 20
def call
  uri = build_uri
  http = Net::HTTP.new(uri.host, uri.port)
  get_request = Net::HTTP::Get.new(uri.path)
  apply_https(http, uri)
  apply_headers(get_request)
  get_response_body(http, get_request)
end

Private Instance Methods

apply_headers(request) click to toggle source
# File lib/fragments/requester.rb, line 42
def apply_headers(request)
  request.add_field("Cookie", cookies)
  request.add_field("frontend-uri", fetch_fragment_uri_prefix)
  request.add_field("current-url", current_url)
  request.add_field("host", current_host.gsub(/^https?\:\/\/(www.)?/,''))
end
apply_https(http, uri) click to toggle source
# File lib/fragments/requester.rb, line 36
def apply_https(http, uri)
  return if uri.scheme != "https"
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end
build_uri() click to toggle source
# File lib/fragments/requester.rb, line 31
def build_uri
  path = current_host + '/' + fragment_code;
  URI.parse(path)
end
fetch_fragment_uri_prefix() click to toggle source
# File lib/fragments/requester.rb, line 54
def fetch_fragment_uri_prefix
  ::Fragments.config.uri_prefix(I18n.locale)
end
get_response_body(http, request) click to toggle source
# File lib/fragments/requester.rb, line 49
def get_response_body(http, request)
  get_response = http.request(request)
  get_response.body
end