class HasOffersV3::Base

Public Class Methods

client() click to toggle source
# File lib/hasoffersv3/base.rb, line 15
def client
  HasOffersV3.client
end
method_missing(meth, *args, &block) click to toggle source
# File lib/hasoffersv3/base.rb, line 19
def method_missing(meth, *args, &block)
  new(client).send(meth, *args, &block)
end
new(client = HasOffersV3.client) click to toggle source
# File lib/hasoffersv3/base.rb, line 6
def initialize(client = HasOffersV3.client)
  @client = client
end
target() click to toggle source
# File lib/hasoffersv3/base.rb, line 11
def target
  name.split('::').last
end

Private Class Methods

deprecation(from, to) click to toggle source
# File lib/hasoffersv3/base.rb, line 25
def deprecation(from, to)
  warn "\033[31m[DEPRECATION] `#{ name }.#{ from }` is deprecated. Please use `#{ name }.#{ to }` instead.\033[0m"
end

Public Instance Methods

client() click to toggle source
# File lib/hasoffersv3/base.rb, line 70
def client
  @client
end
get_request(method, params = {}, &block) click to toggle source
# File lib/hasoffersv3/base.rb, line 30
def get_request(method, params = {}, &block)
  if block.nil?
    make_request(:get, method, params)
  else
    page = 1
    begin
      response = make_request(:get, method, params.merge(page: page))
      block.call response
      page += 1
    end until page > (response.page_info['page_count'] || 1)
  end
end
make_request(http_method, method, params) click to toggle source
# File lib/hasoffersv3/base.rb, line 74
def make_request(http_method, method, params)
  @client.request(http_method, target, method, params)
end
post_request(method, params = {}, &block) click to toggle source
# File lib/hasoffersv3/base.rb, line 43
def post_request(method, params = {}, &block)
  if block.nil?
    make_request(:post, method, params)
  else
    page = 1
    begin
      response = make_request(:post, method, params.merge(page: page))
      block.call response
      page += 1
    end until page > (response.page_info['page_count'] || 1)
  end
end
requires!(hash, required_params) click to toggle source
# File lib/hasoffersv3/base.rb, line 56
def requires!(hash, required_params)
  missing_params = []
  required_params.each do |param|
    missing_params.push param unless hash.has_key?(param)
  end
  unless missing_params.empty?
    raise ArgumentError.new("Missing required parameter(s): #{missing_params.join(', ')}")
  end
end
target() click to toggle source
# File lib/hasoffersv3/base.rb, line 66
def target
  self.class.target
end