geoloqi 0.9.35 → 0.9.36

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/.gitignore CHANGED
@@ -2,3 +2,4 @@ Gemfile.lock
2
2
  *.gem
3
3
  doc
4
4
  .yardoc
5
+ .rbx
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require "rake/testtask"
3
3
  desc "Run all tests"
4
4
  Rake::TestTask.new do |t|
5
5
  t.libs << "spec"
6
- t.test_files = FileList['spec/*_spec.rb']
6
+ t.test_files = FileList['spec/*_spec.rb','spec/geoloqi/*_spec.rb']
7
7
  t.verbose = true
8
8
  end
9
9
 
@@ -11,7 +11,7 @@ require 'geoloqi/version'
11
11
 
12
12
  module Geoloqi
13
13
  # Location of the Bundle of CA Root Certificates.
14
- SSL_CERT_FILE = File.join(File.dirname(__FILE__), 'geoloqi/data/ca-certificates.crt')
14
+ SSL_CERT_FILE = File.join(File.dirname(__FILE__), 'geoloqi', 'data', 'ca-certificates.crt')
15
15
 
16
16
  # Location of the global {Geoloqi::Config} object
17
17
  @@config = Config.new
@@ -1,8 +1,77 @@
1
1
  module Geoloqi
2
2
  class Config
3
- attr_accessor :client_id, :client_secret, :redirect_uri, :adapter, :logger, :use_hashie_mash,
4
- :throw_exceptions, :use_dynamic_exceptions, :symbolize_names
3
+ # OAuth2 Client ID for the application. Retrieve from the Geoloqi Developers Site.
4
+ #
5
+ # @return [String]
6
+ # @example
7
+ # Geoloqi.config.client_id = 'YOUR APPLICATION CLIENT ID'
8
+ attr_accessor :client_id
9
+
10
+ # OAuth2 Client Secret for the application. Retrieve from the Geoloqi Developers Site.
11
+ # @return [String]
12
+ attr_accessor :client_secret
13
+
14
+ # OAuth2 Redirect URI. This is the location the user will be redirected to after authorization from the Geoloqi OAuth2 server.
15
+ # If this is not provided, the user will be redirected to the URI configured at the Geoloqi Developers Site.
16
+ # @return [String]
17
+ attr_accessor :redirect_uri
18
+
19
+ # Which HTTP adapter to use for Faraday. Defaults to :net_http
20
+ #
21
+ # @return [Symbol]
22
+ # @example
23
+ # Geoloqi.config.adapter = :typhoeus
24
+ attr_accessor :adapter
25
+
26
+ # Provide a logger. This can be any object that responds to print and puts (anything that inherits IO).
27
+ #
28
+ # @return [IO]
29
+ # @example
30
+ # Geoloqi.config.logger = STDOUT
31
+ attr_accessor :logger
32
+
33
+ # Use Hashie::Mash for return objects, which provides dot-style data retrieval.
34
+ #
35
+ # @see https://github.com/intridea/hashie
36
+ # @return [Boolean]
37
+ # @example
38
+ # Geoloqi.config.use_hashie_mash = true
39
+ #
40
+ # # Get profile and retrieve data via Hashie::Mash dot notation
41
+ # result = Geoloqi.get 'YOUR ACCESS TOKEN', 'account/profile'
42
+ # result.name # => "Your Name"
43
+ attr_accessor :use_hashie_mash
44
+
45
+ # Throw Geoloqi::ApiError exception on API errors. Defaults to true. If set to false, you will need to check for the error key in responses.
46
+ #
47
+ # @return [Boolean]
48
+ # @example
49
+ # Geoloqi.config :throw_exceptions = false
50
+ attr_accessor :throw_exceptions
51
+
52
+ # Use dynamic error class names, which inherit from Geoloqi::ApiError. This may be deprecated in a future release.
53
+ #
54
+ # @return [Boolean]
55
+ attr_accessor :use_dynamic_exceptions
56
+
57
+ # Use symbols for keys in Hash response. Defaults to true.
58
+ #
59
+ # @return [Boolean]
60
+ # @example
61
+ # Geoloqi.config.throw_exceptions = true
62
+ attr_accessor :symbolize_names
5
63
 
64
+
65
+ # Instantiate a new Geoloqi::Config object.
66
+ #
67
+ # @param opts A hash of the config settings.
68
+ # @return [Config]
69
+ # @example
70
+ # # Dynamically create a Geoloqi::Config object
71
+ # geoloqi_config = Geoloqi::Config.new :use_hashie_mash => true, :throw_exceptions => false
72
+ #
73
+ # # Use geoloqi_config to create new session
74
+ # geoloqi_session = Geoloqi::Session.new :access_token => 'YOUR ACCESS TOKEN', :config => geoloqi_config
6
75
  def initialize(opts={})
7
76
  self.use_hashie_mash ||= false
8
77
  self.throw_exceptions ||= true
@@ -18,10 +87,14 @@ module Geoloqi
18
87
  end
19
88
  end
20
89
 
90
+ # Check if the OAuth2 Client ID exists.
91
+ # @return [Boolean]
21
92
  def client_id?
22
93
  !client_id.nil? && !client_id.empty?
23
94
  end
24
95
 
96
+ # Check if OAuth2 Client Secret exists.
97
+ # @return [Boolean]
25
98
  def client_secret?
26
99
  !client_secret.nil? && !client_secret.empty?
27
100
  end
@@ -1,6 +1,26 @@
1
1
  module Geoloqi
2
+ # Used for Geoloqi API errors (errors originating from the API server itself).
2
3
  class ApiError < StandardError
3
- attr_reader :status, :type, :reason
4
+ # Status code of error
5
+ # @return [Fixnum]
6
+ # @example
7
+ # 404, 500
8
+ attr_reader :status
9
+
10
+ # Type of error
11
+ # @return [String]
12
+ # @example
13
+ # "not_found", "invalid_input"
14
+ attr_reader :type
15
+
16
+ # Human-readable explanation of error.
17
+ # @return [String]
18
+ # @example
19
+ # "The requested resource could not found"
20
+ attr_reader :reason
21
+
22
+ # Instantiate a new ApiError object
23
+ # @return [ApiError]
4
24
  def initialize(status, type, reason=nil)
5
25
  @status = status
6
26
  @type = type
@@ -12,6 +32,9 @@ module Geoloqi
12
32
  end
13
33
  end
14
34
 
35
+ # Used for config errors.
15
36
  class Error < StandardError; end
37
+
38
+ # Used for argument errors.
16
39
  class ArgumentError < ArgumentError; end
17
40
  end
@@ -1,6 +1,23 @@
1
1
  module Geoloqi
2
2
  class Response
3
- attr_reader :status, :headers, :body
3
+ # The HTTP status code of the response
4
+ # @return [Fixnum]
5
+ attr_reader :status
6
+
7
+ # The HTTP Headers of the response
8
+ # @return [Hash]
9
+ attr_reader :headers
10
+
11
+ # The body of the response
12
+ # @return [String]
13
+ attr_reader :body
14
+
15
+ # Instantiate a response object.
16
+ # @param status [Fixnum] The HTTP status code of the response
17
+ # @param headers [Hash] The HTTP Headers of the response
18
+ # @param body [String] The body of the response
19
+ # @example
20
+ # Geoloqi::Response.new 200, {'Server' => 'geoloqi-platform'}, '{"response":"ok"}'
4
21
  def initialize(status, headers, body)
5
22
  @status = status
6
23
  @headers = headers
@@ -1,28 +1,39 @@
1
+ require 'thread'
2
+
1
3
  module Geoloqi
2
- # This class is used to instantiate a session object. It is designed to be thread safe, and multiple sessions can be used simultaneously,
3
- # allowing for one ruby application to potentially handle multiple Geoloqi applications.
4
+ # This class is used to instantiate a session object. It is designed to be thread safe, and multiple sessions can be used
5
+ # simultaneously, allowing for one ruby application to potentially handle multiple Geoloqi applications.
4
6
  #
5
7
  # @example
6
8
  # # Instantiate a session with your access token (obtained from the Geoloqi Developers Site):
7
- # session = Geoloqi::Session.new :access_token => 'YOUR ACCESS TOKEN'
9
+ # geoloqi_session = Geoloqi::Session.new :access_token => 'YOUR ACCESS TOKEN'
8
10
  #
9
11
  # # Instantiate a session with a custom config:
10
- # session = Geoloqi::Session.new :access_token => 'YOUR ACCESS TOKEN', :config => {:use_hashie_mash => true}
12
+ # geoloqi_session = Geoloqi::Session.new :access_token => 'YOUR ACCESS TOKEN', :config => {:use_hashie_mash => true}
11
13
  #
12
14
  # # Instantiate a session with OAuth2 credentials (obtained from the Geoloqi Developers Site):
13
- # session = Geoloqi::Session.new :config => {:client_id => 'CLIENT ID', :client_secret => 'CLIENT SECRET'}
15
+ # geoloqi_session = Geoloqi::Session.new :config => {:client_id => 'CLIENT ID', :client_secret => 'CLIENT SECRET'}
14
16
  #
15
17
  # # Get profile:
16
- # result = session.get 'account/profile'
18
+ # result = geoloqi_session.get 'account/profile'
17
19
  class Session
18
- # This is the auth Hash, which is provided by the OAuth2 response. This can be stored externally and used to re-initialize the session.
20
+ # The auth Hash, which is provided by the OAuth2 response. This can be stored externally and used to re-initialize the session.
19
21
  # @return [Hash]
20
22
  attr_reader :auth
21
-
22
- # This is the config object attached to this session. It is unique to this session.
23
- # @return [Geoloqi::Config]
23
+
24
+ # The config object attached to this session. It is unique to this session, and can be replaced/changed dynamically.
25
+ # @return [Config]
24
26
  attr_accessor :config
25
27
 
28
+ # Instantiate a Geoloqi session.
29
+ #
30
+ # @return [Config]
31
+ # @example
32
+ # # With access token
33
+ # geoloqi_session = Geoloqi::Session.new :access_token => 'YOUR ACCESS TOKEN'
34
+ #
35
+ # # With OAuth2
36
+ # geoloqi_session = Geoloqi::Session.new :config => {:client_id => 'CLIENT ID', :client_secret => 'CLIENT SECRET'}
26
37
  def initialize(opts={})
27
38
  opts[:config] = Geoloqi::Config.new opts[:config] if opts[:config].is_a? Hash
28
39
  @config = opts[:config] || (Geoloqi.config || Geoloqi::Config.new)
@@ -35,7 +46,8 @@ module Geoloqi
35
46
  end
36
47
 
37
48
  def auth=(hash)
38
- @auth = hash.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
49
+ new_auth = hash.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
50
+ synchronize { @auth = new_auth }
39
51
  end
40
52
 
41
53
  # The access token for this session.
@@ -60,7 +72,7 @@ module Geoloqi
60
72
  # Makes a GET request to the Geoloqi API server and returns response.
61
73
  #
62
74
  # @param [String] path
63
- # Path to the resource being requested (example: '/account/profile').
75
+ # Path to the resource being requested.
64
76
  #
65
77
  # @param [String, Hash] query (optional)
66
78
  # A query string or Hash to be appended to the request.
@@ -68,13 +80,14 @@ module Geoloqi
68
80
  # @param [Hash] headers (optional)
69
81
  # Adds and overwrites headers in request sent to server.
70
82
  #
71
- # @return [Hash] by default, [Hashie::Mash] if enabled in config.
83
+ # @return [Hash,Hashie::Mash]
84
+ # @see #post
72
85
  # @example
73
86
  # # Get your user profile
74
- # response = session.get 'YOUR ACCESS TOKEN', 'account/profile'
87
+ # result = geoloqi_session.get 'YOUR ACCESS TOKEN', 'account/profile'
75
88
  #
76
89
  # # Get the last 5 locations
77
- # response = session.get 'YOUR ACCESS TOKEN', 'account/profile', :count => 5
90
+ # result = geoloqi_session.get 'YOUR ACCESS TOKEN', 'account/profile', :count => 5
78
91
  def get(path, query=nil, headers={})
79
92
  run :get, path, query, headers
80
93
  end
@@ -82,28 +95,29 @@ module Geoloqi
82
95
  # Makes a POST request to the Geoloqi API server and returns response.
83
96
  #
84
97
  # @param [String] path
85
- # Path to the resource being requested (example: '/account/profile').
98
+ # Path to the resource being requested (example: '/account/profile').
86
99
  #
87
100
  # @param [String, Hash] query (optional)
88
- # A query string or Hash to be converted to POST parameters.
101
+ # A query string or Hash to be converted to POST parameters.
89
102
  #
90
103
  # @param [Hash] headers (optional)
91
- # Adds and overwrites headers in request sent to server.
104
+ # Adds and overwrites headers in request sent to server.
92
105
  #
93
- # @return [Hash] by default, [Hashie::Mash] if enabled in config.
106
+ # @return [Hash,Hashie::Mash]
107
+ # @see #get
94
108
  # @example
95
109
  # # Create a new layer
96
- # Geoloqi.post 'YOUR ACCESS TOKEN', 'layer/create', :name => 'Portland Food Carts'
110
+ # result = geoloqi_session.post 'layer/create', :name => 'Portland Food Carts'
97
111
  def post(path, query=nil, headers={})
98
112
  run :post, path, query, headers
99
113
  end
100
114
 
101
- # Makes a one-time request to the Geoloqi API server.
115
+ # Makes a request to the Geoloqi API server.
102
116
  #
103
- # @return [Hash] by default, [Hashie::Mash] if enabled in config.
117
+ # @return [Hash,Hashie::Mash]
104
118
  # @example
105
119
  # # Create a new layer
106
- # session.post 'YOUR ACCESS TOKEN', 'layer/create', :name => 'Northeast Portland'
120
+ # result = geoloqi_session.run :get, 'layer/create', :name => 'Northeast Portland'
107
121
  def run(meth, path, query=nil, headers={})
108
122
  renew_access_token! if auth[:expires_at] && Time.rfc2822(auth[:expires_at]) <= Time.now && !(path =~ /^\/?oauth\/token$/)
109
123
  retry_attempt = 0
@@ -137,6 +151,11 @@ module Geoloqi
137
151
  @config.use_hashie_mash ? Hashie::Mash.new(hash) : hash
138
152
  end
139
153
 
154
+ # Makes a low-level request to the Geoloqi API server. It does no processing of the response.
155
+ #
156
+ # @return [Response]
157
+ # @example
158
+ # result = geoloqi_session.execute :get, 'account/profile'
140
159
  def execute(meth, path, query=nil, headers={})
141
160
  query = Rack::Utils.parse_query query if query.is_a?(String)
142
161
  headers = default_headers.merge! headers
@@ -159,6 +178,11 @@ module Geoloqi
159
178
  Response.new raw.status, raw.headers, raw.body
160
179
  end
161
180
 
181
+ # Used to retrieve the access token from the Geoloqi OAuth2 server. This is fairly low level and you shouldn't need to use it directly.
182
+ #
183
+ # @return [Hash] - The auth hash used to persist the session object.
184
+ # @see #renew_access_token!
185
+ # @see #get_auth
162
186
  def establish(opts={})
163
187
  require 'client_id and client_secret are required to get access token' unless @config.client_id? && @config.client_secret?
164
188
  auth = post 'oauth/token', {:client_id => @config.client_id,
@@ -171,10 +195,21 @@ module Geoloqi
171
195
  self.auth
172
196
  end
173
197
 
198
+ # Renew the access token provided from Geoloqi using the stored refresh token. This method is automatically called by the session object
199
+ # when it detects an expiration, so you shouldn't need to explicitly call it.
200
+ #
201
+ # @return [Hash] The auth hash used to persist the session object.
202
+ # @see #establish
174
203
  def renew_access_token!
175
204
  establish :grant_type => 'refresh_token', :refresh_token => self.auth[:refresh_token]
176
205
  end
177
206
 
207
+ # Get the OAuth2 authentication information. This call also stores the auth to the session automatically.
208
+ #
209
+ # @param code [String] The code provided by the Geoloqi OAuth2 server.
210
+ # @param redirect_uri [String] The redirect URI provided to the Geoloqi OAuth2 server. This value must match the redirect_uri sent to the server.
211
+ # @return [Hash] The auth hash used to persist the session object.
212
+ # @see #establish
178
213
  def get_auth(code, redirect_uri=@config.redirect_uri)
179
214
  establish :grant_type => 'authorization_code', :code => code, :redirect_uri => redirect_uri
180
215
  end
@@ -192,5 +227,11 @@ module Geoloqi
192
227
  headers['Authorization'] = "OAuth #{access_token}" if access_token
193
228
  headers
194
229
  end
230
+
231
+ # Used to retrieve a semaphore lock for thread safety.
232
+ def synchronize(&block)
233
+ @@semaphore ||= Mutex.new
234
+ @@semaphore.synchronize &block
235
+ end
195
236
  end
196
237
  end
@@ -3,6 +3,6 @@ module Geoloqi
3
3
  #
4
4
  # @return [String]
5
5
  def self.version
6
- '0.9.35'
6
+ '0.9.36'
7
7
  end
8
8
  end
@@ -1,4 +1,4 @@
1
- require File.join File.dirname(__FILE__), 'env.rb'
1
+ require File.join File.dirname(__FILE__), '..', 'env.rb'
2
2
 
3
3
  describe Geoloqi::ApiError do
4
4
  it 'throws exception properly and allows drill-down of message' do
@@ -1,4 +1,4 @@
1
- require File.join File.dirname(__FILE__), 'env.rb'
1
+ require File.join File.dirname(__FILE__), '..', 'env.rb'
2
2
 
3
3
  describe Geoloqi::Config do
4
4
  describe 'with redirect_uri' do
@@ -1,4 +1,4 @@
1
- require File.join File.dirname(__FILE__), 'env.rb'
1
+ require File.join File.dirname(__FILE__), '..', 'env.rb'
2
2
 
3
3
  describe Geoloqi::Session do
4
4
  describe 'with nothing passed' do
@@ -299,4 +299,4 @@ describe Geoloqi::Session do
299
299
  expect { @session.auth[:access_token] == 'access_token4567' }
300
300
  end
301
301
  end
302
- end
302
+ end
metadata CHANGED
@@ -1,110 +1,133 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geoloqi
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.9.35
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 9
8
+ - 36
9
+ version: 0.9.36
6
10
  platform: ruby
7
11
  authors:
8
- - Kyle Drake
9
- - Aaron Parecki
12
+ - Kyle Drake
13
+ - Aaron Parecki
10
14
  autorequire:
11
15
  bindir: bin
12
16
  cert_chain: []
13
17
 
14
- date: 2012-01-08 00:00:00 Z
18
+ date: 2012-01-08 00:00:00 -08:00
19
+ default_executable:
15
20
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: json
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
25
- type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: faraday
29
- prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
31
- none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: 0.6.1
36
- type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: rake
40
- prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
47
- type: :development
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: wrong
51
- prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - "="
56
- - !ruby/object:Gem::Version
57
- version: 0.6.0
58
- type: :development
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: minitest
62
- prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
64
- none: false
65
- requirements:
66
- - - "="
67
- - !ruby/object:Gem::Version
68
- version: 2.2.2
69
- type: :development
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: webmock
73
- prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
77
- - - "="
78
- - !ruby/object:Gem::Version
79
- version: 1.6.4
80
- type: :development
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: hashie
84
- prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - "="
89
- - !ruby/object:Gem::Version
90
- version: 1.0.0
91
- type: :development
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: yard
95
- prerelease: false
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
- version_requirements: *id008
21
+ - !ruby/object:Gem::Dependency
22
+ name: json
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ type: :runtime
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
34
+ name: faraday
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ segments:
41
+ - 0
42
+ - 6
43
+ - 1
44
+ version: 0.6.1
45
+ type: :runtime
46
+ version_requirements: *id002
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ prerelease: false
50
+ requirement: &id003 !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ segments:
55
+ - 0
56
+ version: "0"
57
+ type: :development
58
+ version_requirements: *id003
59
+ - !ruby/object:Gem::Dependency
60
+ name: wrong
61
+ prerelease: false
62
+ requirement: &id004 !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "="
65
+ - !ruby/object:Gem::Version
66
+ segments:
67
+ - 0
68
+ - 6
69
+ - 0
70
+ version: 0.6.0
71
+ type: :development
72
+ version_requirements: *id004
73
+ - !ruby/object:Gem::Dependency
74
+ name: minitest
75
+ prerelease: false
76
+ requirement: &id005 !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "="
79
+ - !ruby/object:Gem::Version
80
+ segments:
81
+ - 2
82
+ - 2
83
+ - 2
84
+ version: 2.2.2
85
+ type: :development
86
+ version_requirements: *id005
87
+ - !ruby/object:Gem::Dependency
88
+ name: webmock
89
+ prerelease: false
90
+ requirement: &id006 !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "="
93
+ - !ruby/object:Gem::Version
94
+ segments:
95
+ - 1
96
+ - 6
97
+ - 4
98
+ version: 1.6.4
99
+ type: :development
100
+ version_requirements: *id006
101
+ - !ruby/object:Gem::Dependency
102
+ name: hashie
103
+ prerelease: false
104
+ requirement: &id007 !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "="
107
+ - !ruby/object:Gem::Version
108
+ segments:
109
+ - 1
110
+ - 0
111
+ - 0
112
+ version: 1.0.0
113
+ type: :development
114
+ version_requirements: *id007
115
+ - !ruby/object:Gem::Dependency
116
+ name: yard
117
+ prerelease: false
118
+ requirement: &id008 !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ segments:
123
+ - 0
124
+ version: "0"
125
+ type: :development
126
+ version_requirements: *id008
104
127
  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.
105
128
  email:
106
- - kyle@geoloqi.com
107
- - aaron@geoloqi.com
129
+ - kyle@geoloqi.com
130
+ - aaron@geoloqi.com
108
131
  executables: []
109
132
 
110
133
  extensions: []
@@ -112,29 +135,30 @@ extensions: []
112
135
  extra_rdoc_files: []
113
136
 
114
137
  files:
115
- - .gitignore
116
- - .travis.yml
117
- - .yardopts
118
- - Gemfile
119
- - LICENSE.md
120
- - README.md
121
- - Rakefile
122
- - examples/simple.rb
123
- - examples/sinatra_simple.rb
124
- - examples/sinatra_synchrony.rb
125
- - geoloqi.gemspec
126
- - lib/geoloqi.rb
127
- - lib/geoloqi/config.rb
128
- - lib/geoloqi/data/ca-certificates.crt
129
- - lib/geoloqi/error.rb
130
- - lib/geoloqi/response.rb
131
- - lib/geoloqi/session.rb
132
- - lib/geoloqi/version.rb
133
- - spec/env.rb
134
- - spec/geoloqi_api_error_spec.rb
135
- - spec/geoloqi_config.rb
136
- - spec/geoloqi_session_spec.rb
137
- - spec/geoloqi_spec.rb
138
+ - .gitignore
139
+ - .travis.yml
140
+ - .yardopts
141
+ - Gemfile
142
+ - LICENSE.md
143
+ - README.md
144
+ - Rakefile
145
+ - examples/simple.rb
146
+ - examples/sinatra_simple.rb
147
+ - examples/sinatra_synchrony.rb
148
+ - geoloqi.gemspec
149
+ - lib/geoloqi.rb
150
+ - lib/geoloqi/config.rb
151
+ - lib/geoloqi/data/ca-certificates.crt
152
+ - lib/geoloqi/error.rb
153
+ - lib/geoloqi/response.rb
154
+ - lib/geoloqi/session.rb
155
+ - lib/geoloqi/version.rb
156
+ - spec/env.rb
157
+ - spec/geoloqi/api_error_spec.rb
158
+ - spec/geoloqi/config_spec.rb
159
+ - spec/geoloqi/session_spec.rb
160
+ - spec/geoloqi_spec.rb
161
+ has_rdoc: true
138
162
  homepage: http://github.com/geoloqi/geoloqi-ruby
139
163
  licenses: []
140
164
 
@@ -142,26 +166,29 @@ post_install_message:
142
166
  rdoc_options: []
143
167
 
144
168
  require_paths:
145
- - lib
169
+ - lib
146
170
  required_ruby_version: !ruby/object:Gem::Requirement
147
- none: false
148
171
  requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: "0"
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ segments:
175
+ - 0
176
+ version: "0"
152
177
  required_rubygems_version: !ruby/object:Gem::Requirement
153
- none: false
154
178
  requirements:
155
- - - ">="
156
- - !ruby/object:Gem::Version
157
- version: 1.3.4
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ segments:
182
+ - 1
183
+ - 3
184
+ - 4
185
+ version: 1.3.4
158
186
  requirements: []
159
187
 
160
188
  rubyforge_project: geoloqi
161
- rubygems_version: 1.8.9
189
+ rubygems_version: 1.3.6
162
190
  signing_key:
163
191
  specification_version: 3
164
192
  summary: Powerful, flexible, lightweight interface to the awesome Geoloqi platform API
165
193
  test_files: []
166
194
 
167
- has_rdoc: