class Genderize::Io::Base

Constants

DEFAULT_HOST
HEADER_KEYS

Attributes

country_id[R]
data[R]
host[R]
language_id[R]
name[R]
request[R]

Public Class Methods

determine(name, host: DEFAULT_HOST, country_id: nil, language_id: nil) click to toggle source
# File lib/genderize/io/base.rb, line 24
def self.determine(name, host: DEFAULT_HOST, country_id: nil, language_id: nil)
  instance = new(name, host: host, country_id: country_id, language_id: language_id)
  instance.determine
  instance
end
new(name, host: DEFAULT_HOST, country_id: nil, language_id: nil) click to toggle source
# File lib/genderize/io/base.rb, line 16
def initialize(name, host: DEFAULT_HOST, country_id: nil, language_id: nil)
  @name = name
  @host = host
  @country_id = country_id
  @language_id = language_id
  @request = nil
end

Public Instance Methods

url() click to toggle source
# File lib/genderize/io/base.rb, line 30
def url
  connector = @host.include?('?') ? '&' : '?'
  "#{@host}#{connector}#{param_name}#{param_country_id}#{param_language_id}"
end

Private Instance Methods

generate_data() click to toggle source
# File lib/genderize/io/base.rb, line 37
def generate_data
  return if @request.nil?

  Genderize::Io::Parser::Json.parse(@request.response_body)
end
generate_headers() click to toggle source
# File lib/genderize/io/base.rb, line 43
def generate_headers
  return if @request.nil?

  Genderize::Io::Parser::Header.parse(@request.response_headers)
end
generate_rate_limits() click to toggle source
# File lib/genderize/io/base.rb, line 49
def generate_rate_limits
  headers = generate_headers
  return if headers.nil?

  HEADER_KEYS.each_with_object({}) { |key, hash| hash[key] = headers.send(key).to_i }
end
generate_request() click to toggle source
# File lib/genderize/io/base.rb, line 56
def generate_request
  return @request unless @request.nil?

  Typhoeus.get(url, accept_encoding: 'gzip,deflate')
end
param_country_id() click to toggle source
# File lib/genderize/io/base.rb, line 62
def param_country_id
  "&country_id=#{@country_id}" unless @country_id.nil?
end
param_language_id() click to toggle source
# File lib/genderize/io/base.rb, line 66
def param_language_id
  "&language_id=#{@language_id}" unless @language_id.nil?
end