class BN::API::Base

The base class for API requesters.

Public Class Methods

new(attributes={}) click to toggle source
Calls superclass method BN::Helpers::HasAttributes::new
# File lib/bn/api/base.rb, line 13
def initialize(attributes={})
  self.region = :us

  super

  raise Error::API::InvalidKey if @key.nil?
end

Protected Instance Methods

get(url, query={}) click to toggle source

Send an HTTP GET request.

@param [#to_s] url @param [#to_h] query @return [HTTPI::Response]

# File lib/bn/api/base.rb, line 34
def get(url, query={})
  url = url.to_s.gsub(%r{^/}, "")
  query = query.to_h

  request = HTTPI::Request.new
  request.url = "#{@region[:host]}/#{url}"
  request.query = { apikey: @key, locale: @locale }.merge(query)

  HTTPI.get(request)
end
sanitize_battle_tag(value) click to toggle source
# File lib/bn/api/base.rb, line 73
def sanitize_battle_tag(value)
  value.to_s.delete(" ").gsub(/#/, "-")
end
validate_and_convert_region(region_key) click to toggle source
# File lib/bn/api/base.rb, line 53
def validate_and_convert_region(region_key)
  region_key = region_key.to_sym

  raise Error::API::InvalidRegion unless BN::API::REGIONS.keys.include?(region_key)

  region = REGIONS[region_key]
  @locale = region[:locales].first

  region
end
validate_key(value) click to toggle source
# File lib/bn/api/base.rb, line 45
def validate_key(value)
  value = value.to_s.delete(" ")

  raise Error::API::InvalidKey if value.empty?

  value
end
validate_locale(locale) click to toggle source
# File lib/bn/api/base.rb, line 64
def validate_locale(locale)
  locale = locale.to_s.strip
  locale = @region[:locales].first if locale.empty?

  raise Error::API::InvalidLocale, region: @region unless @region[:locales].include?(locale)

  locale
end