Module: GrouponApi

Defined in:
lib/groupon_api.rb,
lib/groupon_api/deals.rb,
lib/groupon_api/config.rb,
lib/groupon_api/request.rb,
lib/groupon_api/version.rb

Defined Under Namespace

Classes: Configuration, Request

Constant Summary collapse

API_KEY_FORMAT =
/US_AFF_0_\d+_212556_0/
API_BASE =
'partner-api.groupon.com'
VERSION =
"0.2.1"

Class Method Summary collapse

Class Method Details

.configObject

GrouponApi global settings



14
15
16
# File 'lib/groupon_api/config.rb', line 14

def self.config
  @config ||= GrouponApi::Configuration.new
end

.configure {|@config ||= GrouponApi::Configuration.new| ... } ⇒ Object

configure GrouponApi global settings

GrouponApi.configure do |config|
  config.ts_token = 'US_AFF_0_201236_212556_0'
  config.debug = true
end

Yields:



9
10
11
# File 'lib/groupon_api/config.rb', line 9

def self.configure &block
  yield @config ||= GrouponApi::Configuration.new
end

.deals(params) ⇒ Object

Raises:

  • (::ArgumentError)


2
3
4
5
6
7
8
9
10
11
12
# File 'lib/groupon_api/deals.rb', line 2

def self.deals(params)
  raise ::ArgumentError, 'param :ts_token cannot be nil' if GrouponApi.config.ts_token.nil?
  raise ::ArgumentError, 'param :ts_token must match /US_AFF_0_\d+_212556_0/' unless GrouponApi.config.ts_token.match(API_KEY_FORMAT)
  
  params.merge!(tsToken: GrouponApi.config.ts_token)
  params.merge!(GrouponApi.config.deals) if GrouponApi.config.deals.kind_of?(Hash)
  
  puts "#{__FILE__}:#{__LINE__} params: #{params}" if GrouponApi.config.debug

  GrouponApi::Request.call('deals', params)['deals'].collect{|deal| HashWithIndifferentAccess.new(deal)}
end