geoloqi 0.9.16 → 0.9.17

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,10 @@
1
+ require "rake/testtask"
2
+
3
+ desc "Run all tests"
4
+ Rake::TestTask.new do |t|
5
+ t.libs << "spec"
6
+ t.test_files = FileList['spec/*_spec.rb']
7
+ t.verbose = true
8
+ end
9
+
10
+ task :default => :test
@@ -15,9 +15,11 @@ Gem::Specification.new do |s|
15
15
  s.required_rubygems_version = '>= 1.3.4'
16
16
 
17
17
  s.add_dependency 'json'
18
- s.add_dependency 'faraday', '>= 0.6.1'
18
+ s.add_dependency 'faraday', '>= 0.6.1'
19
+ s.add_dependency 'addressable', '>= 0'
19
20
 
20
- s.add_development_dependency 'wrong', '= 0.5.0'
21
+ s.add_development_dependency 'rake', '>= 0'
22
+ s.add_development_dependency 'wrong', '= 0.5.0'
21
23
  s.add_development_dependency 'minitest', '= 2.2.2'
22
24
  s.add_development_dependency 'webmock', '= 1.6.4'
23
25
  s.add_development_dependency 'hashie', '= 1.0.0'
@@ -3,6 +3,7 @@ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
3
3
  require 'json'
4
4
  require 'faraday'
5
5
  require 'logger'
6
+ require 'addressable/uri'
6
7
  require 'geoloqi/config'
7
8
  require 'geoloqi/error'
8
9
  require 'geoloqi/response'
@@ -28,4 +29,4 @@ module Geoloqi
28
29
  url += "&#{Rack::Utils.build_query opts}" unless opts.empty?
29
30
  url
30
31
  end
31
- end
32
+ end
@@ -27,8 +27,8 @@ module Geoloqi
27
27
  !access_token.nil?
28
28
  end
29
29
 
30
- def authorize_url(redirect_uri=@config.redirect_uri)
31
- Geoloqi.authorize_url @config.client_id, redirect_uri
30
+ def authorize_url(redirect_uri=@config.redirect_uri, opts={})
31
+ Geoloqi.authorize_url @config.client_id, redirect_uri, opts
32
32
  end
33
33
 
34
34
  def get(path, query=nil)
@@ -1,5 +1,5 @@
1
1
  module Geoloqi
2
2
  def self.version
3
- '0.9.16'
3
+ '0.9.17'
4
4
  end
5
5
  end
@@ -1,13 +1,28 @@
1
- raise ArgumentError, 'usage: be ruby spec/geoloqi_spec.rb "client_id" "client_secret" "access_token"' unless ARGV.length == 3
2
1
  # Bundler.setup
3
2
  require 'rubygems'
4
3
  require './lib/geoloqi.rb'
5
4
  require 'minitest/autorun'
6
5
  require 'wrong'
7
6
  require 'wrong/adapters/minitest'
7
+ require 'em-http-request' if RUBY_VERSION[0..2].to_f >= 1.9 # Preload for WebMock
8
8
  require 'webmock'
9
+ require 'webmock/http_lib_adapters/em_http_request'
10
+
11
+ CLIENT_ID = 'client_id1234'
12
+ CLIENT_SECRET = 'client_secret1234'
13
+ ACCESS_TOKEN = 'access_token1234'
14
+
15
+ def auth_headers(access_token='access_token1234')
16
+ {'Content-Type' => 'application/json',
17
+ 'User-Agent' => "geoloqi-ruby #{Geoloqi.version}",
18
+ 'Accept' => 'application/json',
19
+ 'Authorization' => "OAuth #{access_token}"}
20
+ end
21
+
22
+ def api_url(path); "#{Geoloqi::API_URL}/#{Geoloqi::API_VERSION}/#{path}" end
9
23
 
10
24
  Wrong.config.alias_assert :expect
25
+ include WebMock::API
11
26
 
12
27
  describe Geoloqi do
13
28
  it 'reads geoloqi config' do
@@ -17,21 +32,23 @@ describe Geoloqi do
17
32
  expect { Geoloqi.config.client_secret == 'client_secret' }
18
33
  end
19
34
 
20
- it 'returns authorize url' do
21
- authorize_url = Geoloqi.authorize_url 'test', 'http://blah.blah/test'
22
- expect { authorize_url == "#{Geoloqi::OAUTH_URL}?"+
23
- 'response_type=code&'+
24
- "client_id=#{Rack::Utils.escape 'test'}&"+
25
- "redirect_uri=#{Rack::Utils.escape 'http://blah.blah/test'}" }
26
- end
27
-
28
- it 'returns authorize url with scope' do
29
- authorize_url = Geoloqi.authorize_url 'test', 'http://blah.blah/test', :scope => 'can_party_hard'
30
- expect { authorize_url == "#{Geoloqi::OAUTH_URL}?"+
31
- 'response_type=code&'+
32
- "client_id=#{Rack::Utils.escape 'test'}&"+
33
- "redirect_uri=#{Rack::Utils.escape 'http://blah.blah/test'}&"+
34
- "scope=can_party_hard" }
35
+ describe 'authorize_url' do
36
+ it 'is valid' do
37
+ authorize_url = Geoloqi.authorize_url 'test', 'http://blah.blah/test'
38
+ expect { authorize_url == "#{Geoloqi::OAUTH_URL}?"+
39
+ 'response_type=code&'+
40
+ "client_id=#{Rack::Utils.escape 'test'}&"+
41
+ "redirect_uri=#{Rack::Utils.escape 'http://blah.blah/test'}" }
42
+ end
43
+
44
+ it 'is valid with scope' do
45
+ authorize_url = Geoloqi.authorize_url 'test', 'http://blah.blah/test', :scope => 'can_party_hard'
46
+ expect { authorize_url == "#{Geoloqi::OAUTH_URL}?"+
47
+ 'response_type=code&'+
48
+ "client_id=#{Rack::Utils.escape 'test'}&"+
49
+ "redirect_uri=#{Rack::Utils.escape 'http://blah.blah/test'}&"+
50
+ "scope=can_party_hard" }
51
+ end
35
52
  end
36
53
  end
37
54
 
@@ -48,7 +65,7 @@ end
48
65
  describe Geoloqi::Config do
49
66
  describe 'with redirect_uri' do
50
67
  it 'returns authorize url' do
51
- Geoloqi.config :client_id => ARGV[0], :client_secret => ARGV[1], :redirect_uri => 'http://blah.blah/test'
68
+ Geoloqi.config :client_id => CLIENT_ID, :client_secret => CLIENT_SECRET, :redirect_uri => 'http://blah.blah/test'
52
69
  authorize_url = Geoloqi.authorize_url 'test'
53
70
  expect { authorize_url == "#{Geoloqi::OAUTH_URL}?"+
54
71
  'response_type=code&'+
@@ -71,10 +88,6 @@ describe Geoloqi::Config do
71
88
  end
72
89
 
73
90
  describe Geoloqi::Session do
74
- before do
75
- WebMock.allow_net_connect!
76
- end
77
-
78
91
  describe 'with nothing passed' do
79
92
  before do
80
93
  @session = Geoloqi::Session.new
@@ -87,6 +100,10 @@ describe Geoloqi::Session do
87
100
 
88
101
  describe 'with access token and throw exceptions not set' do
89
102
  it 'should throw api error exception' do
103
+ stub_request(:get, api_url('badmethodcall')).
104
+ with(:headers => auth_headers).
105
+ to_return(:status => 404, :body => {'error' => 'not_found'}.to_json)
106
+
90
107
  expect { rescuing {Geoloqi::Session.new(:access_token => 'access_token1234').get('badmethodcall')}.class == Geoloqi::ApiError }
91
108
  end
92
109
  end
@@ -95,7 +112,12 @@ describe Geoloqi::Session do
95
112
  before do
96
113
  @session = Geoloqi::Session.new :access_token => 'access_token1234', :config => {:throw_exceptions => false}
97
114
  end
115
+
98
116
  it 'should not throw api error exception' do
117
+ stub_request(:get, api_url('badmethodcall')).
118
+ with(:headers => auth_headers).
119
+ to_return(:status => 404, :body => {'error' => 'not_found'}.to_json)
120
+
99
121
  response = @session.get 'badmethodcall'
100
122
  expect {response['error'] == 'not_found'}
101
123
  end
@@ -107,6 +129,10 @@ describe Geoloqi::Session do
107
129
  end
108
130
 
109
131
  it 'should respond to method calls in addition to hash' do
132
+ stub_request(:get, api_url('account/username')).
133
+ with(:headers => {'Authorization'=>'OAuth access_token1234'}).
134
+ to_return(:body => {'username' => 'bulbasaurrulzok'}.to_json)
135
+
110
136
  response = @session.get 'account/username'
111
137
  expect { response['username'] == 'bulbasaurrulzok' }
112
138
  expect { response.username == 'bulbasaurrulzok' }
@@ -116,22 +142,46 @@ describe Geoloqi::Session do
116
142
 
117
143
  describe 'with access token and no config' do
118
144
  before do
119
- @session = Geoloqi::Session.new :access_token => ARGV[2]
145
+ @session = Geoloqi::Session.new :access_token => ACCESS_TOKEN
120
146
  end
121
147
 
122
148
  it 'successfully makes mock call with array' do
149
+ stub_request(:post, api_url('play_record_at_geoloqi_hq')).
150
+ with(:headers => auth_headers, :body => [{:artist => 'Television'}].to_json).
151
+ to_return(:body => {'result' => 'ok'}.to_json)
152
+
123
153
  expect { @session.post('play_record_at_geoloqi_hq', [{:artist => 'Television'}])['result'] == 'ok' }
124
154
  end
125
155
 
126
156
  it 'successfully makes call to api with forward slash' do
157
+ stub_request(:get, api_url('layer/info/Gx')).
158
+ with(:headers => auth_headers).
159
+ to_return(:status => 200, :body => {'layer_id' => 'Gx'}.to_json)
160
+
127
161
  expect { @session.get('/layer/info/Gx')['layer_id'] == 'Gx' }
128
162
  end
129
163
 
130
164
  it 'successfully makes call to api without forward slash' do
165
+ stub_request(:get, api_url('layer/info/Gx')).
166
+ with(:headers => auth_headers).
167
+ to_return(:status => 200, :body => {'layer_id' => 'Gx'}.to_json)
168
+
131
169
  expect { @session.get('layer/info/Gx')['layer_id'] == 'Gx' }
132
170
  end
133
171
 
134
172
  it 'creates a layer, reads its info, and then deletes the layer' do
173
+ stub_request(:post, api_url('layer/create')).
174
+ with(:headers => auth_headers, :body => {:name => 'Test Layer'}.to_json).
175
+ to_return(:status => 200, :body => {:layer_id => 'layer_id1234'}.to_json)
176
+
177
+ stub_request(:get, api_url('layer/info/layer_id1234')).
178
+ with(:headers => auth_headers).
179
+ to_return(:status => 200, :body => {:name => 'Test Layer'}.to_json)
180
+
181
+ stub_request(:post, api_url('layer/delete/layer_id1234')).
182
+ with(:headers => {'Accept'=>'application/json', 'Authorization'=>'OAuth access_token1234', 'Content-Length'=>'0', 'Content-Type'=>'application/json', 'User-Agent'=>'geoloqi-ruby 0.9.16'}).
183
+ to_return(:status => 200, :body => {'result' => 'ok'}.to_json)
184
+
135
185
  layer_id = @session.post('/layer/create', :name => 'Test Layer')['layer_id']
136
186
  layer_info = @session.get "/layer/info/#{layer_id}"
137
187
  layer_delete = @session.post "/layer/delete/#{layer_id}"
@@ -142,25 +192,34 @@ describe Geoloqi::Session do
142
192
  expect { layer_delete['result'] == 'ok' }
143
193
  end
144
194
 
145
- it 'makes a location/history call with get and hash params' do
146
- expect { @session.get('location/history', :count => 2)['points'].count == 2 }
147
- end
195
+ describe 'location/history' do
196
+ before do
197
+ stub_request(:get, api_url('location/history?count=2')).
198
+ with(:headers => auth_headers).
199
+ to_return(:status => 200, :body => {:points => [1,2]}.to_json)
200
+ end
148
201
 
149
- it 'makes a location/history call with get and query string directly in path' do
150
- expect { @session.get('location/history?count=2')['points'].count == 2 }
151
- end
202
+ it 'makes a location/history call with get and hash params' do
203
+ expect { @session.get('location/history', :count => 2)['points'].count == 2 }
204
+ end
205
+
206
+ it 'makes a location/history call with get and query string directly in path' do
207
+ expect { @session.get('location/history?count=2')['points'].count == 2 }
208
+ end
152
209
 
153
- it 'makes a location/history call with get and query string params' do
154
- expect { @session.get('location/history', 'count=2')['points'].count == 2 }
210
+ it 'makes a location/history call with get and query string params' do
211
+ expect { @session.get('location/history', 'count=2')['points'].count == 2 }
212
+ end
155
213
  end
156
214
  end
157
215
 
158
216
  describe 'with oauth id, secret, and access token via Geoloqi::Config' do
159
217
  it 'should load config' do
160
- @session = Geoloqi::Session.new :access_token => ARGV[2], :config => Geoloqi::Config.new(:client_id => ARGV[0],
161
- :client_secret => ARGV[1])
162
- expect { @session.config.client_id == ARGV[0] }
163
- expect { @session.config.client_secret == ARGV[1] }
218
+ @session = Geoloqi::Session.new :access_token => ACCESS_TOKEN,
219
+ :config => Geoloqi::Config.new(:client_id => CLIENT_ID,
220
+ :client_secret => CLIENT_SECRET)
221
+ expect { @session.config.client_id == CLIENT_ID }
222
+ expect { @session.config.client_secret == CLIENT_SECRET }
164
223
  end
165
224
  end
166
225
 
@@ -173,7 +232,7 @@ describe Geoloqi::Session do
173
232
  end
174
233
  describe 'with em synchrony adapter and access token' do
175
234
  it 'makes call to api' do
176
- session = Geoloqi::Session.new :access_token => ARGV[2], :config => {:adapter => :em_synchrony}
235
+ session = Geoloqi::Session.new :access_token => ACCESS_TOKEN, :config => {:adapter => :em_synchrony}
177
236
  response = session.get 'layer/info/Gx'
178
237
  expect { response['layer_id'] == 'Gx' }
179
238
  end
@@ -182,11 +241,13 @@ describe Geoloqi::Session do
182
241
 
183
242
  describe 'with client id, client secret, and access token via direct hash' do
184
243
  before do
185
- @session = Geoloqi::Session.new :access_token => ARGV[2], :config => {:client_id => ARGV[0], :client_secret => ARGV[1]}
244
+ @session = Geoloqi::Session.new :access_token => ACCESS_TOKEN,
245
+ :config => {:client_id => CLIENT_ID,
246
+ :client_secret => CLIENT_SECRET}
186
247
  end
187
248
 
188
249
  it 'should return access token' do
189
- expect { @session.access_token == ARGV[2] }
250
+ expect { @session.access_token == ACCESS_TOKEN }
190
251
  end
191
252
 
192
253
  it 'should recognize access token exists' do
@@ -194,12 +255,21 @@ describe Geoloqi::Session do
194
255
  end
195
256
 
196
257
  it 'gets authorize url' do
197
- authorize_url = @session.authorize_url('http://blah.blah/test')
258
+ authorize_url = @session.authorize_url 'http://blah.blah/test'
198
259
  expect { authorize_url == "#{Geoloqi::OAUTH_URL}?"+
199
260
  "response_type=code&"+
200
- "client_id=#{Rack::Utils.escape ARGV[0]}&"+
261
+ "client_id=#{Rack::Utils.escape CLIENT_ID}&"+
201
262
  "redirect_uri=#{Rack::Utils.escape 'http://blah.blah/test'}" }
202
263
  end
264
+
265
+ it 'gets authorize url with scope' do
266
+ authorize_url = @session.authorize_url 'http://blah.blah/test', :scope => 'party_hard'
267
+ expect { authorize_url == "#{Geoloqi::OAUTH_URL}?"+
268
+ "response_type=code&"+
269
+ "client_id=#{Rack::Utils.escape CLIENT_ID}&"+
270
+ "redirect_uri=#{Rack::Utils.escape 'http://blah.blah/test'}&"+
271
+ "scope=party_hard" }
272
+ end
203
273
  end
204
274
 
205
275
  describe 'with bunk access token' do
@@ -208,8 +278,12 @@ describe Geoloqi::Session do
208
278
  end
209
279
 
210
280
  it 'fails with an exception' do
281
+ stub_request(:post, api_url('message/send')).
282
+ with(:headers => auth_headers('hey brah whats up let me in its cool 8)')).
283
+ to_return(:status => 401, :body => {'error' => 'invalid_token'}.to_json)
284
+
211
285
  begin
212
- @session.get 'message/send'
286
+ @session.post 'message/send'
213
287
  rescue Exception => e
214
288
  expect { e.class == Geoloqi::ApiError }
215
289
  expect { e.status == 401 }
@@ -221,16 +295,22 @@ describe Geoloqi::Session do
221
295
 
222
296
  describe 'with config' do
223
297
  before do
224
- @session = Geoloqi::Session.new :config => {:client_id => ARGV[0], :client_secret => ARGV[1]}
298
+ @session = Geoloqi::Session.new :config => {:client_id => CLIENT_ID, :client_secret => CLIENT_SECRET}
225
299
  end
226
300
 
227
301
  it 'retrieves auth with mock' do
228
- WebMock.disable_net_connect!
229
- begin
230
- response = @session.get_auth('1234', 'http://test.site/')
231
- ensure
232
- WebMock.allow_net_connect!
233
- end
302
+ stub_request(:post, api_url('oauth/token')).
303
+ with(:body => {:client_id => CLIENT_ID,
304
+ :client_secret => CLIENT_SECRET,
305
+ :grant_type => "authorization_code",
306
+ :code => "1234",
307
+ :redirect_uri => "http://example.com"}.to_json).
308
+ to_return(:body => {:access_token => 'access_token1234',
309
+ :scope => nil,
310
+ :expires_in => '86400',
311
+ :refresh_token => 'refresh_token1234'}.to_json)
312
+
313
+ response = @session.get_auth '1234', 'http://example.com'
234
314
 
235
315
  {:access_token => 'access_token1234',
236
316
  :scope => nil,
@@ -243,22 +323,24 @@ describe Geoloqi::Session do
243
323
  end
244
324
 
245
325
  it 'does not refresh when never expires' do
246
- WebMock.disable_net_connect!
247
- begin
248
- response = @session.get_auth '1234', 'http://neverexpires.example.com/'
249
- ensure
250
- WebMock.allow_net_connect!
251
- end
326
+ stub_request(:post, api_url('oauth/token')).
327
+ with(:body => {:client_id => CLIENT_ID,
328
+ :client_secret => CLIENT_SECRET,
329
+ :grant_type => "authorization_code",
330
+ :code => "1234",
331
+ :redirect_uri => "http://neverexpires.example.com/"}.to_json).
332
+ to_return(:body => {:access_token => 'access_token1234',
333
+ :scope => nil,
334
+ :expires_in => '0',
335
+ :refresh_token => 'never_expires'}.to_json)
336
+
337
+ response = @session.get_auth '1234', 'http://neverexpires.example.com/'
252
338
 
253
339
  expect { @session.auth[:expires_in] == '0' }
254
340
  expect { @session.auth[:expires_at].nil? }
255
341
 
256
- WebMock.disable_net_connect!
257
- begin
258
- response = @session.get 'account/username'
259
- ensure
260
- WebMock.allow_net_connect!
261
- end
342
+ response = @session.get 'account/username'
343
+
262
344
  expect { @session.auth[:access_token] == 'access_token1234' }
263
345
  expect { response['username'] == 'bulbasaurrulzok' }
264
346
  end
@@ -266,7 +348,7 @@ describe Geoloqi::Session do
266
348
 
267
349
  describe 'with config and expired auth' do
268
350
  before do
269
- @session = Geoloqi::Session.new :config => {:client_id => ARGV[0], :client_secret => ARGV[1]},
351
+ @session = Geoloqi::Session.new :config => {:client_id => CLIENT_ID, :client_secret => CLIENT_SECRET},
270
352
  :auth => { :access_token => 'access_token1234',
271
353
  :scope => nil,
272
354
  :expires_in => '86400',
@@ -275,66 +357,22 @@ describe Geoloqi::Session do
275
357
  end
276
358
 
277
359
  it 'retrieves new access token and retries query if expired' do
278
- WebMock.disable_net_connect!
279
- begin
280
- @session.get('account/username')
281
- ensure
282
- WebMock.allow_net_connect!
283
- end
360
+ stub_request(:post, api_url('oauth/token')).
361
+ with(:body => {:client_id => CLIENT_ID,
362
+ :client_secret => CLIENT_SECRET,
363
+ :grant_type => "refresh_token",
364
+ :refresh_token => "refresh_token1234"}.to_json).
365
+ to_return(:body => {:access_token => 'access_token4567',
366
+ :scope => nil,
367
+ :expires_in => '5000',
368
+ :refresh_token => 'refresh_token4567'}.to_json)
369
+
370
+ stub_request(:get, api_url('account/username')).
371
+ with(:headers => {'Authorization'=>'OAuth access_token4567'}).
372
+ to_return(:body => {'username' => 'pikachu4lyfe'}.to_json)
373
+
374
+ @session.get 'account/username'
284
375
  expect { @session.auth[:access_token] == 'access_token4567' }
285
376
  end
286
377
  end
287
- end
288
-
289
- include WebMock::API
290
-
291
- stub_request(:post, "https://api.geoloqi.com/1/oauth/token").
292
- with(:body => {:client_id => ARGV[0],
293
- :client_secret => ARGV[1],
294
- :grant_type => "authorization_code",
295
- :code => "1234",
296
- :redirect_uri => "http://neverexpires.example.com/"}.to_json).
297
- to_return(:status => 200,
298
- :body => {:access_token => 'access_token1234',
299
- :scope => nil,
300
- :expires_in => '0',
301
- :refresh_token => 'never_expires'}.to_json)
302
-
303
- stub_request(:post, "https://api.geoloqi.com/1/oauth/token").
304
- with(:body => {:client_id => ARGV[0],
305
- :client_secret => ARGV[1],
306
- :grant_type => "authorization_code",
307
- :code => "1234",
308
- :redirect_uri => "http://test.site/"}.to_json).
309
- to_return(:status => 200,
310
- :body => {:access_token => 'access_token1234',
311
- :scope => nil,
312
- :expires_in => '86400',
313
- :refresh_token => 'refresh_token1234'}.to_json)
314
-
315
- stub_request(:post, "https://api.geoloqi.com/1/oauth/token").
316
- with(:body => {:client_id => ARGV[0],
317
- :client_secret => ARGV[1],
318
- :grant_type => "refresh_token",
319
- :refresh_token => "refresh_token1234"}.to_json).
320
- to_return(:status => 200,
321
- :body => {:access_token => 'access_token4567',
322
- :scope => nil,
323
- :expires_in => '5000',
324
- :refresh_token => 'refresh_token4567'}.to_json)
325
-
326
- stub_request(:get, "https://api.geoloqi.com/1/account/username").
327
- with(:headers => {'Authorization'=>'OAuth access_token1234'}).
328
- to_return(:status => 200,
329
- :body => {'username' => 'bulbasaurrulzok'}.to_json)
330
-
331
- stub_request(:get, "https://api.geoloqi.com/1/account/username").
332
- with(:headers => {'Authorization'=>'OAuth access_token4567'}).
333
- to_return(:status => 200,
334
- :body => {'username' => 'pikachu4lyfe'}.to_json)
335
-
336
- # This is not a real API call, we're using it to test that arrays are JSON encoded.
337
- stub_request(:post, "https://api.geoloqi.com/1/play_record_at_geoloqi_hq").
338
- with(:body => [{:artist => 'Television'}].to_json).
339
- to_return(:status => 200,
340
- :body => {'result' => 'ok'}.to_json)
378
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: geoloqi
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.9.16
5
+ version: 0.9.17
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kyle Drake
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-07-17 00:00:00 -07:00
14
+ date: 2011-07-26 00:00:00 -07:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -37,49 +37,71 @@ dependencies:
37
37
  type: :runtime
38
38
  version_requirements: *id002
39
39
  - !ruby/object:Gem::Dependency
40
- name: wrong
40
+ name: addressable
41
41
  prerelease: false
42
42
  requirement: &id003 !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: "0"
48
+ type: :runtime
49
+ version_requirements: *id003
50
+ - !ruby/object:Gem::Dependency
51
+ name: rake
52
+ prerelease: false
53
+ requirement: &id004 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: "0"
59
+ type: :development
60
+ version_requirements: *id004
61
+ - !ruby/object:Gem::Dependency
62
+ name: wrong
63
+ prerelease: false
64
+ requirement: &id005 !ruby/object:Gem::Requirement
43
65
  none: false
44
66
  requirements:
45
67
  - - "="
46
68
  - !ruby/object:Gem::Version
47
69
  version: 0.5.0
48
70
  type: :development
49
- version_requirements: *id003
71
+ version_requirements: *id005
50
72
  - !ruby/object:Gem::Dependency
51
73
  name: minitest
52
74
  prerelease: false
53
- requirement: &id004 !ruby/object:Gem::Requirement
75
+ requirement: &id006 !ruby/object:Gem::Requirement
54
76
  none: false
55
77
  requirements:
56
78
  - - "="
57
79
  - !ruby/object:Gem::Version
58
80
  version: 2.2.2
59
81
  type: :development
60
- version_requirements: *id004
82
+ version_requirements: *id006
61
83
  - !ruby/object:Gem::Dependency
62
84
  name: webmock
63
85
  prerelease: false
64
- requirement: &id005 !ruby/object:Gem::Requirement
86
+ requirement: &id007 !ruby/object:Gem::Requirement
65
87
  none: false
66
88
  requirements:
67
89
  - - "="
68
90
  - !ruby/object:Gem::Version
69
91
  version: 1.6.4
70
92
  type: :development
71
- version_requirements: *id005
93
+ version_requirements: *id007
72
94
  - !ruby/object:Gem::Dependency
73
95
  name: hashie
74
96
  prerelease: false
75
- requirement: &id006 !ruby/object:Gem::Requirement
97
+ requirement: &id008 !ruby/object:Gem::Requirement
76
98
  none: false
77
99
  requirements:
78
100
  - - "="
79
101
  - !ruby/object:Gem::Version
80
102
  version: 1.0.0
81
103
  type: :development
82
- version_requirements: *id006
104
+ version_requirements: *id008
83
105
  description: Powerful, flexible, lightweight interface to the awesome Geoloqi platform API! Uses Faraday, and can be used with Ruby 1.9 and EM-Synchrony for really fast, highly concurrent development.
84
106
  email:
85
107
  - kyledrake@gmail.com
@@ -94,6 +116,7 @@ files:
94
116
  - .gitignore
95
117
  - Gemfile
96
118
  - README.markdown
119
+ - Rakefile
97
120
  - examples/simple.rb
98
121
  - examples/sinatra.rb
99
122
  - examples/sinatra_synchrony.rb
@@ -130,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
153
  requirements: []
131
154
 
132
155
  rubyforge_project: geoloqi
133
- rubygems_version: 1.5.2
156
+ rubygems_version: 1.6.2
134
157
  signing_key:
135
158
  specification_version: 3
136
159
  summary: Powerful, flexible, lightweight interface to the awesome Geoloqi platform API