thinknear 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +3 -0
- data/Gemfile.lock +4 -0
- data/VERSION +1 -1
- data/lib/think_near/client.rb +16 -15
- data/lib/think_near/endpoint.rb +19 -13
- data/lib/think_near/offer.rb +5 -5
- data/lib/think_near.rb +1 -0
- data/thinknear.gemspec +8 -2
- metadata +31 -9
data/Gemfile
CHANGED
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.
|
1
|
+
0.0.13
|
data/lib/think_near/client.rb
CHANGED
@@ -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
|
67
|
+
def get(endpoint)
|
67
68
|
raise NoConnectionEstablished if @@connection.nil?
|
68
|
-
@@connection.get endpoint
|
69
|
+
@@connection.get endpoint
|
69
70
|
end
|
70
71
|
|
71
|
-
def post(endpoint
|
72
|
+
def post(endpoint)
|
72
73
|
raise NoConnectionEstablished if @@connection.nil?
|
73
|
-
@@connection.post endpoint
|
74
|
+
@@connection.post endpoint
|
74
75
|
end
|
75
76
|
end
|
76
77
|
end
|
data/lib/think_near/endpoint.rb
CHANGED
@@ -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}"
|
33
|
+
endpoint_url("offers/#{latitude},#{longitude}", params)
|
32
34
|
elsif !zipcode.blank?
|
33
|
-
endpoint_url("offers/#{zipcode}"
|
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"
|
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',
|
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
|
data/lib/think_near/offer.rb
CHANGED
@@ -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
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.
|
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-
|
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.
|
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-
|
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:
|
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: :
|
47
|
+
type: :runtime
|
48
48
|
prerelease: false
|
49
49
|
version_requirements: *id003
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
|
-
name:
|
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: :
|
58
|
+
type: :runtime
|
59
59
|
prerelease: false
|
60
60
|
version_requirements: *id004
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
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:
|
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: -
|
154
|
+
hash: -2542798210434473424
|
133
155
|
segments:
|
134
156
|
- 0
|
135
157
|
version: "0"
|