thinknear 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,6 +2,9 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem 'oauth'
4
4
  gem 'json'
5
+ gem 'activesupport'
6
+ gem 'i18n'
7
+
5
8
 
6
9
  group :development do
7
10
  gem 'rspec'
data/Gemfile.lock CHANGED
@@ -1,8 +1,10 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ activesupport (3.0.9)
4
5
  diff-lcs (1.1.2)
5
6
  git (1.2.5)
7
+ i18n (0.6.0)
6
8
  jeweler (1.5.2)
7
9
  bundler (~> 1.0.0)
8
10
  git (>= 1.2.5)
@@ -24,7 +26,9 @@ PLATFORMS
24
26
  ruby
25
27
 
26
28
  DEPENDENCIES
29
+ activesupport
27
30
  bundler
31
+ i18n
28
32
  jeweler
29
33
  json
30
34
  oauth
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.12
1
+ 0.0.13
@@ -4,10 +4,11 @@ module ThinkNear
4
4
  @@debug = false
5
5
 
6
6
  class << self
7
- def set_credentials(token, secret, api_host = API_HOST)
7
+ def set_credentials(token, secret, api_host = API_HOST, app_id = nil)
8
8
  @@api_host = api_host || API_HOST
9
9
  @@connection = Connection.new(token, secret)
10
10
  @@connection.debug = @@debug
11
+ Endpoint.app_id = app_id if app_id
11
12
  end
12
13
 
13
14
  def debug=(debug_flag)
@@ -43,34 +44,34 @@ module ThinkNear
43
44
  get Endpoint.draws(category)
44
45
  end
45
46
 
46
- def get_offers(params)
47
- get Endpoint.offers(params)
47
+ def get_offers(params, app_id = nil)
48
+ get Endpoint.offers(params, app_id)
48
49
  end
49
50
 
50
- def get_offer(id)
51
- get Endpoint.offer(id)
51
+ def get_offer(id, app_id = nil)
52
+ get Endpoint.offer(id, app_id)
52
53
  end
53
54
 
54
- def claim_offer(offer_id, latitude, longitude)
55
- post Endpoint.claim_offer(offer_id, latitude, longitude)
55
+ def claim_offer(offer_id, latitude, longitude, app_id = nil)
56
+ post Endpoint.claim_offer(offer_id, latitude, longitude, app_id)
56
57
  end
57
58
 
58
- def save_offer(offer_id, email)
59
- post Endpoint.save_offer(offer_id, email)
59
+ def save_offer(offer_id, email, app_id = nil)
60
+ post Endpoint.save_offer(offer_id, email, app_id)
60
61
  end
61
62
 
62
- def get_feed(city)
63
- get Endpoint.feed(city)
63
+ def get_feed(city, app_id = nil)
64
+ get Endpoint.feed(city, app_id)
64
65
  end
65
66
 
66
- def get(endpoint, data=nil)
67
+ def get(endpoint)
67
68
  raise NoConnectionEstablished if @@connection.nil?
68
- @@connection.get endpoint, data
69
+ @@connection.get endpoint
69
70
  end
70
71
 
71
- def post(endpoint, data=nil)
72
+ def post(endpoint)
72
73
  raise NoConnectionEstablished if @@connection.nil?
73
- @@connection.post endpoint, data
74
+ @@connection.post endpoint
74
75
  end
75
76
  end
76
77
  end
@@ -1,6 +1,7 @@
1
1
  module ThinkNear
2
2
  class Endpoint
3
3
  class << self
4
+
4
5
  def ping
5
6
  endpoint_url 'ping'
6
7
  end
@@ -21,42 +22,47 @@ module ThinkNear
21
22
  endpoint_url "draws/#{category}"
22
23
  end
23
24
 
24
- def offers(params)
25
+ def offers(params, app_id)
25
26
  latitude = params.delete(:latitude)
26
27
  longitude = params.delete(:longitude)
27
28
  zipcode = params.delete(:zipcode)
28
29
  params = params.select { |k, v| !v.blank? }
30
+ params.merge(app_id_hash(app_id))
29
31
 
30
32
  if !latitude.blank? && !longitude.blank?
31
- endpoint_url("offers/#{latitude},#{longitude}") + "?#{params.to_param}"
33
+ endpoint_url("offers/#{latitude},#{longitude}", params)
32
34
  elsif !zipcode.blank?
33
- endpoint_url("offers/#{zipcode}") + "?#{params.to_param}"
35
+ endpoint_url("offers/#{zipcode}", params)
34
36
  end
35
37
  end
36
38
 
37
- def offer(id)
38
- endpoint_url "offers/#{id}"
39
+ def offer(id, app_id)
40
+ endpoint_url "offers/#{id}", app_id_hash(app_id)
39
41
  end
40
42
 
41
- def claim_offer(offer_id, latitude, longitude)
43
+ def claim_offer(offer_id, latitude, longitude, app_id)
42
44
  if latitude && longitude
43
- endpoint_url "offers/#{offer_id}/claim/#{latitude},#{longitude}"
45
+ endpoint_url "offers/#{offer_id}/claim/#{latitude},#{longitude}", app_id_hash(app_id)
44
46
  else
45
- endpoint_url "offers/#{offer_id}/claim"
47
+ endpoint_url "offers/#{offer_id}/claim", app_id_hash(app_id)
46
48
  end
47
49
  end
48
50
 
49
- def save_offer(offer_id, email)
50
- endpoint_url("offers/#{offer_id}/save") + "?email=#{CGI.escape(email)}"
51
+ def save_offer(offer_id, email, app_id)
52
+ endpoint_url("offers/#{offer_id}/save", {:email => CGI.escape(email)}.merge(app_id_hash(app_id)))
51
53
  end
52
54
 
53
55
  def feed(city)
54
- endpoint_url('feeds', 'rss') + "?city=#{CGI.escape(city)}"
56
+ endpoint_url('feeds', {:city => CGI.escape(city)}.merge(app_id_hash(app_id)), 'rss')
55
57
  end
56
58
 
57
- def endpoint_url(path, format = 'json', version = API_VERSION)
58
- ["http://#{Client.api_host}", version, [path, format].join('.')].join('/')
59
+ def endpoint_url(path, params = {}, format = 'json', version = API_VERSION)
60
+ ["http://#{Client.api_host}", version, [path, format].join('.')].join('/') + "?#{params.to_param}"
59
61
  end
62
+
63
+ def app_id_hash(app_id)
64
+ app_id ? {:app_id => app_id} : {}
65
+ end
60
66
  end
61
67
  end
62
68
  end
@@ -1,9 +1,9 @@
1
1
  module ThinkNear
2
2
  class Offer < OpenStruct
3
- def self.find(id_or_params)
3
+ def self.find(id_or_params, app_id = nil)
4
4
  if id_or_params.is_a? String
5
5
  begin
6
- if params = Client.get_offer(id_or_params)['offer']
6
+ if params = Client.get_offer(id_or_params, app_id)['offer']
7
7
  new(params)
8
8
  else
9
9
  raise OfferNotFound, "Couldn't find Offer with ID=#{id_or_params}"
@@ -12,7 +12,7 @@ module ThinkNear
12
12
  raise OfferNotFound, "Couldn't find Offer with ID=#{id_or_params}"
13
13
  end
14
14
  elsif id_or_params.is_a? Hash
15
- Client.get_offers(id_or_params).map do |item|
15
+ Client.get_offers(id_or_params, app_id).map do |item|
16
16
  new item['offer']
17
17
  end
18
18
  end
@@ -22,8 +22,8 @@ module ThinkNear
22
22
  @table
23
23
  end
24
24
 
25
- def claim!(latitude = nil, longitude = nil)
26
- self.class.new Client.claim_offer(id, latitude, longitude)['offer']
25
+ def claim!(latitude = nil, longitude = nil, app_id = nil)
26
+ self.class.new Client.claim_offer(id, latitude, longitude, app_id)['offer']
27
27
  end
28
28
 
29
29
  def save(email)
data/lib/think_near.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'ostruct'
2
+ require 'active_support/core_ext'
2
3
 
3
4
  require 'think_near/connection'
4
5
  require 'think_near/endpoint'
data/thinknear.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{thinknear}
8
- s.version = "0.0.12"
8
+ s.version = "0.0.13"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["John Hinnegan", "Denis Barushev"]
12
- s.date = %q{2011-07-09}
12
+ s.date = %q{2011-07-22}
13
13
  s.email = %q{john@thinknear.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
@@ -63,6 +63,8 @@ Gem::Specification.new do |s|
63
63
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
64
64
  s.add_runtime_dependency(%q<oauth>, [">= 0"])
65
65
  s.add_runtime_dependency(%q<json>, [">= 0"])
66
+ s.add_runtime_dependency(%q<activesupport>, [">= 0"])
67
+ s.add_runtime_dependency(%q<i18n>, [">= 0"])
66
68
  s.add_development_dependency(%q<rspec>, [">= 0"])
67
69
  s.add_development_dependency(%q<bundler>, [">= 0"])
68
70
  s.add_development_dependency(%q<jeweler>, [">= 0"])
@@ -70,6 +72,8 @@ Gem::Specification.new do |s|
70
72
  else
71
73
  s.add_dependency(%q<oauth>, [">= 0"])
72
74
  s.add_dependency(%q<json>, [">= 0"])
75
+ s.add_dependency(%q<activesupport>, [">= 0"])
76
+ s.add_dependency(%q<i18n>, [">= 0"])
73
77
  s.add_dependency(%q<rspec>, [">= 0"])
74
78
  s.add_dependency(%q<bundler>, [">= 0"])
75
79
  s.add_dependency(%q<jeweler>, [">= 0"])
@@ -78,6 +82,8 @@ Gem::Specification.new do |s|
78
82
  else
79
83
  s.add_dependency(%q<oauth>, [">= 0"])
80
84
  s.add_dependency(%q<json>, [">= 0"])
85
+ s.add_dependency(%q<activesupport>, [">= 0"])
86
+ s.add_dependency(%q<i18n>, [">= 0"])
81
87
  s.add_dependency(%q<rspec>, [">= 0"])
82
88
  s.add_dependency(%q<bundler>, [">= 0"])
83
89
  s.add_dependency(%q<jeweler>, [">= 0"])
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: thinknear
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.12
5
+ version: 0.0.13
6
6
  platform: ruby
7
7
  authors:
8
8
  - John Hinnegan
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-07-09 00:00:00 -07:00
14
+ date: 2011-07-22 00:00:00 -07:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -37,29 +37,29 @@ dependencies:
37
37
  prerelease: false
38
38
  version_requirements: *id002
39
39
  - !ruby/object:Gem::Dependency
40
- name: rspec
40
+ name: activesupport
41
41
  requirement: &id003 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: "0"
47
- type: :development
47
+ type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: *id003
50
50
  - !ruby/object:Gem::Dependency
51
- name: bundler
51
+ name: i18n
52
52
  requirement: &id004 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ">="
56
56
  - !ruby/object:Gem::Version
57
57
  version: "0"
58
- type: :development
58
+ type: :runtime
59
59
  prerelease: false
60
60
  version_requirements: *id004
61
61
  - !ruby/object:Gem::Dependency
62
- name: jeweler
62
+ name: rspec
63
63
  requirement: &id005 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
@@ -70,7 +70,7 @@ dependencies:
70
70
  prerelease: false
71
71
  version_requirements: *id005
72
72
  - !ruby/object:Gem::Dependency
73
- name: rcov
73
+ name: bundler
74
74
  requirement: &id006 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
@@ -80,6 +80,28 @@ dependencies:
80
80
  type: :development
81
81
  prerelease: false
82
82
  version_requirements: *id006
83
+ - !ruby/object:Gem::Dependency
84
+ name: jeweler
85
+ requirement: &id007 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: "0"
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: *id007
94
+ - !ruby/object:Gem::Dependency
95
+ name: rcov
96
+ requirement: &id008 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: "0"
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: *id008
83
105
  description:
84
106
  email: john@thinknear.com
85
107
  executables: []
@@ -129,7 +151,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
151
  requirements:
130
152
  - - ">="
131
153
  - !ruby/object:Gem::Version
132
- hash: -2692734162681709451
154
+ hash: -2542798210434473424
133
155
  segments:
134
156
  - 0
135
157
  version: "0"