gmaps_geocoding 0.0.4 → 0.1.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e0eb2ba63ab2f125d3002741bcb198fe93d5f880
4
+ data.tar.gz: df00924a0a27c88b2976db2f03d09611aa8b6190
5
+ SHA512:
6
+ metadata.gz: 79a5ff100b66ecb148e30babe4a8003e09746603a225ffcdb0b0bae4481e23171d76f7e3336503922ccf69e26d041df618b387f4f76ba27e3686dcf57a13e1d2
7
+ data.tar.gz: 1bcb5295f1e08aac1a9778b998cddadb1f2c3c4cc191e92ba28848b06f3267cb41c86105a371307cc215544bbc3add7ec99740620edb589f00ca62b94d9b90b3
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-1.9.3-p392@gmaps_geocoding
1
+ ruby-2.0.0@gmaps_geocoding
data/.versions.conf CHANGED
@@ -1,4 +1,4 @@
1
- ruby=ruby-1.9.3-p392
1
+ ruby=ruby-2.0.0
2
2
  ruby-gemset=gmaps_geocoding
3
3
  #ruby-gem-install=bundler rake
4
4
  #ruby-bundle-install=true
data/.yardopts ADDED
@@ -0,0 +1,2 @@
1
+ --main README.md
2
+ --no-private
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in gmaps_geocoding.gemspec
4
4
  gemspec
5
+
6
+ gem 'simplecov', :require => false, :group => :test
data/README.md CHANGED
@@ -11,11 +11,11 @@ Add this line to your application's Gemfile:
11
11
 
12
12
  And then execute:
13
13
 
14
- $ bundle
14
+ bundle
15
15
 
16
16
  Or install it yourself as:
17
17
 
18
- $ gem install gmaps_geocoding
18
+ gem install gmaps_geocoding
19
19
 
20
20
  ## Usage
21
21
  ### Global information
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require 'bundler/gem_tasks'
3
3
  require 'rake/testtask'
4
+ require 'yard'
4
5
 
5
6
  lib = File.expand_path('../lib/', __FILE__)
6
7
  $:.unshift lib unless $:.include?(lib)
@@ -24,8 +25,14 @@ end
24
25
 
25
26
  Rake::TestTask.new do |t|
26
27
  t.libs << 'lib/gmaps_geocoding'
27
- t.test_files = FileList['test/*_test.rb']
28
+ t.test_files = FileList['test/**/*_test.rb']
28
29
  t.verbose = true
29
30
  end
30
31
 
32
+ desc 'Generate documentation'
33
+ YARD::Rake::YardocTask.new do |t|
34
+ t.files = ['lib/**/*.rb', '-', 'LICENSE.txt']
35
+ t.options = ['--main', 'README.md', '--no-private']
36
+ end
37
+
31
38
  task default: :test
@@ -23,8 +23,9 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.add_runtime_dependency 'rest-client', '~> 1.6.7'
25
25
  s.add_runtime_dependency 'yajl-ruby', '~> 1.1.0'
26
- s.add_runtime_dependency 'nori', '~> 2.0.4'
27
- s.add_runtime_dependency 'nokogiri', '>= 1.4.0'
28
- s.add_development_dependency 'bundler', '~> 1.3'
26
+ s.add_runtime_dependency 'nori', '~> 2.2.0'
27
+ s.add_runtime_dependency 'nokogiri', '~> 1.6.0'
28
+ s.add_development_dependency 'bundler', '~> 1.3.5'
29
29
  s.add_development_dependency 'rake'
30
+ s.add_development_dependency 'yard'
30
31
  end
@@ -1,6 +1,12 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module GmapsGeocoding
4
+ # Google Maps Geocoding Service abstraction class
5
+ #
6
+ # @example
7
+ # opts = {address: 'Tour Eiffel, Paris, IDF, France', output: 'json'}
8
+ # api = GmapsGeocoding::Api.new(opts)
9
+ #
4
10
  class Api
5
11
  attr_reader :config
6
12
 
@@ -8,12 +14,21 @@ module GmapsGeocoding
8
14
  @config = Config.new(opts)
9
15
  end
10
16
 
17
+ # Return a Ruby Hash object of the Google Maps Geocoding Service response
18
+ #
19
+ # {https://developers.google.com/maps/documentation/geocoding/ Google Maps Geocoding Service documentation}.
20
+ #
21
+ # @example
22
+ # # json output example
23
+ # opts = {address: 'Tour Eiffel, Paris, IDF, France', output: 'json'}
24
+ # api = GmapsGeocoding::Api.new(opts)
25
+ # result = api.get_location
26
+ # # xml output example
27
+ # opts = {address: 'Tour Eiffel, Paris, IDF, France', output: 'xml'}
28
+ # api = GmapsGeocoding::Api.new(opts)
29
+ # result = api.get_location
30
+ #
11
31
  def get_location
12
- get_gmaps_data
13
- end
14
-
15
- private
16
- def get_gmaps_data
17
32
  begin
18
33
  if @config.valid?
19
34
  rest_client = retrieve_geocoding_data
@@ -21,7 +36,6 @@ module GmapsGeocoding
21
36
  when true
22
37
  GmapsGeocoding.from_json(rest_client.to_s)
23
38
  else
24
- # Xml parser
25
39
  GmapsGeocoding.from_xml(rest_client.to_s)
26
40
  end
27
41
  return result
@@ -32,6 +46,44 @@ module GmapsGeocoding
32
46
  nil
33
47
  end
34
48
 
49
+ # Get the best latlng for an address based on Google Maps Geocoder "location_type"
50
+ #
51
+ # location_type stores additional data about the specified location. The following values are currently supported:
52
+ # google.maps.GeocoderLocationType.ROOFTOP indicates that the returned result reflects a precise geocode.
53
+ # google.maps.GeocoderLocationType.RANGE_INTERPOLATED indicates that the returned result reflects an approximation (usually on a road) interpolated between two precise points (such as intersections). Interpolated results are generally returned when rooftop geocodes are unavailable for a street address.
54
+ # google.maps.GeocoderLocationType.GEOMETRIC_CENTER indicates that the returned result is the geometric center of a result such as a polyline (for example, a street) or polygon (region).
55
+ # google.maps.GeocoderLocationType.APPROXIMATE indicates that the returned result is approximate.
56
+ #
57
+ # @example
58
+ # # json output example
59
+ # opts = {address: 'Tour Eiffel, Paris, IDF, France', output: 'json'}
60
+ # api = GmapsGeocoding::Api.new(opts)
61
+ # data = api.get_location
62
+ # if data.include?('status') && data['status'].eql?('OK') # or more simple : if data.include?('results')
63
+ # return get_finest_latlng(data['results']) # output : [2.291018, 48.857269]
64
+ # end
65
+ #
66
+ # @param data_result [Array] The json#results or xml#result array from {#get_location} method
67
+ # @return [Array] array contains latitude and longitude of the location
68
+ def get_finest_latlng(data_result)
69
+ tmp_result = {}
70
+ data = data_result
71
+ data.each do |d|
72
+ tmp_result["#{d['geometry']['location_type']}"] = {lng: d['geometry']['location']['lng'].to_f,
73
+ lat: d['geometry']['location']['lat'].to_f}
74
+ end
75
+ if tmp_result.include?('ROOFTOP')
76
+ [tmp_result['ROOFTOP'][:lng], tmp_result['ROOFTOP'][:lat]]
77
+ elsif tmp_result.include?('RANGE_INTERPOLATED')
78
+ [tmp_result['RANGE_INTERPOLATED'][:lng], tmp_result['RANGE_INTERPOLATED'][:lat]]
79
+ elsif tmp_result.include?('GEOMETRIC_CENTER')
80
+ [tmp_result['GEOMETRIC_CENTER'][:lng], tmp_result['GEOMETRIC_CENTER'][:lat]]
81
+ else
82
+ [tmp_result['APPROXIMATE'][:lng], tmp_result['APPROXIMATE'][:lat]]
83
+ end
84
+ end
85
+
86
+ private
35
87
  def build_url_query
36
88
  query = {}
37
89
  query[:address] = @config.address if @config.address
@@ -47,24 +99,25 @@ module GmapsGeocoding
47
99
 
48
100
  def retrieve_geocoding_data
49
101
  require 'rest-client'
50
- data = build_url_query
102
+ data = build_url_query()
51
103
  RestClient.get data[:url], params: data[:query]
52
104
  end
53
105
  end
54
106
 
55
- def self.from_json(json)
56
- require 'yajl/json_gem'
57
- Yajl::Parser.parse(json)
58
- end
107
+ class << self
108
+ def from_json(json)
109
+ require 'yajl/json_gem'
110
+ Yajl::Parser.parse(json)
111
+ end
59
112
 
60
- def self.from_xml(xml)
61
- require 'nori'
62
- n = Nori.new(parser: :nokogiri).parse(xml)
63
- if n.include?('GeocodeResponse')
64
- n = n['GeocodeResponse']
65
- else
66
- n = {'status' => 'UNKNOWN_ERROR'}
113
+ def from_xml(xml)
114
+ require 'nori'
115
+ result = Nori.new(parser: :nokogiri).parse(xml)
116
+ if result.include?('GeocodeResponse')
117
+ result['GeocodeResponse']
118
+ else
119
+ {status: 'UNKNOWN_ERROR'}
120
+ end
67
121
  end
68
- n
69
122
  end
70
123
  end
@@ -1,9 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module GmapsGeocoding
4
+ # Configuration class for GmapsGeocoding API.
4
5
  class Config
5
- attr_reader :options
6
-
7
6
  def initialize(opts = {})
8
7
  @options = {url: 'https://maps.googleapis.com/maps/api/geocode'}
9
8
  @options[:output] = ENV['GOOGLE_MAPS_GEOCODING_OUTPUT'] || opts[:output] || 'json'
@@ -17,61 +16,108 @@ module GmapsGeocoding
17
16
  @options.merge!(opts).reject!{|_, v| v.to_s.length == 0 }
18
17
  end
19
18
 
19
+ # URL of the Google Maps Geocoding Service
20
+ #
21
+ # @return [String] URL of the Google Maps Geocoding Service
20
22
  def url
21
23
  @options[:url]
22
24
  end
23
25
 
26
+ # Output format of the Google Maps Geocoding Service
27
+ #
28
+ # @return [String] Output format of the Google Maps Geocoding Service. Only _xml_ or _json_ formats are available
24
29
  def output
25
30
  @options[:output]
26
31
  end
27
32
 
33
+ # The address that you want to geocode
34
+ #
35
+ # @return [String] The address that you want to geocode.
28
36
  def address
29
37
  @options[:address]
30
38
  end
31
39
 
40
+ # The textual latitude/longitude value for which you wish to obtain the closest, human-readable address
41
+ #
42
+ # @example
43
+ # "40.714224,-73.961452"
44
+ #
45
+ # @return [String] The textual latitude/longitude value for which you wish to obtain the closest, human-readable address
32
46
  def latlng
33
47
  @options[:latlng]
34
48
  end
35
-
49
+ # A component filter for which you wish to obtain a geocode
50
+ #
51
+ # {https://developers.google.com/maps/documentation/geocoding/#ComponentFiltering}
52
+ # @return [String] A component filter for which you wish to obtain a geocode
36
53
  def components
37
54
  @options[:components]
38
55
  end
39
56
 
57
+ # Indicates whether or not the geocoding request comes from a device with a location sensor.
58
+ #
59
+ # @return [String] Indicates whether or not the geocoding request comes from a device with a location sensor. Must be either "true" or "false".
40
60
  def sensor
41
61
  @options[:sensor]
42
62
  end
43
63
 
64
+ # The bounding box of the viewport within which to bias geocode results more prominently
65
+ #
66
+ # {https://developers.google.com/maps/documentation/geocoding/#Viewports}
67
+ # @return [String] The bounding box of the viewport within which to bias geocode results more prominently
44
68
  def bounds
45
69
  @options[:bounds]
46
70
  end
47
71
 
72
+ # The language in which to return results
73
+ #
74
+ # @return [String] The language in which to return results. {https://developers.google.com/maps/faq#languagesupport Supported languages}.
48
75
  def language
49
76
  @options[:language]
50
77
  end
51
78
 
79
+ # The region code, specified as a ccTLD ("top-level domain") two-character value
80
+ #
81
+ # {https://developers.google.com/maps/documentation/geocoding/#RegionCodes}
82
+ # @return [String] The region code, specified as a ccTLD ("top-level domain") two-character value
52
83
  def region
53
84
  @options[:region]
54
85
  end
55
86
 
87
+ # Check if the configuration object is valid
88
+ #
89
+ # @return [true, false] Return _true_ or _false_
56
90
  def valid?
57
- return is_query_valid? &&
58
- is_output_param_valid?
91
+ is_query_valid? && is_output_param_valid?
59
92
  end
60
93
 
94
+ # Check if the output format of the query is set to _json_
95
+ #
96
+ # @return [true, false] Return _true_ or _false_
61
97
  def is_json_format?
62
98
  'json'.eql?(output)
63
99
  end
64
100
 
101
+ # Check if the output format of the query is set to _xml_
102
+ #
103
+ # @return [true, false] Return _true_ or _false_
65
104
  def is_xml_format?
66
105
  'xml'.eql?(output)
67
106
  end
68
107
 
69
108
  private
109
+ # Check if the query is valid
110
+ #
111
+ # According to the specifications: {https://developers.google.com/maps/documentation/geocoding/#GeocodingRequests}
70
112
  def is_query_valid?
71
113
  (@options[:address].to_s.length > 0 && @options[:latlng].to_s.length == 0) ||
72
- (@options[:address].to_s.length == 0 && @options[:latlng].to_s.length > 0)
114
+ (@options[:address].to_s.length == 0 && @options[:latlng].to_s.length > 0) ||
115
+ (@options[:components].to_s.length > 0)
73
116
  end
74
117
 
118
+ # Check if the output format is valid
119
+ #
120
+ # According to the specifications: {https://developers.google.com/maps/documentation/geocoding/#GeocodingResponses}
75
121
  def is_output_param_valid?
76
122
  ['json', 'xml'].include?(output)
77
123
  end
@@ -1,3 +1,3 @@
1
1
  module GmapsGeocoding
2
- VERSION = '0.0.4'
2
+ VERSION = '0.1.0'
3
3
  end
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require 'test/unit'
3
+ require_relative 'test_helper'
3
4
  require 'gmaps_geocoding'
4
5
 
5
6
  class GmapsGeocodingTest < Test::Unit::TestCase
@@ -7,45 +8,58 @@ class GmapsGeocodingTest < Test::Unit::TestCase
7
8
  config = GmapsGeocoding::Config.new
8
9
  assert_not_nil config
9
10
  assert_equal false, config.valid?
10
- assert_equal 3, config.options.length
11
11
  end
12
12
 
13
13
  def test_config_address_set
14
14
  config = GmapsGeocoding::Config.new({address: 'Tour Eiffel, IDF, Paris, France'})
15
15
  assert_not_nil config
16
16
  assert_equal true, config.valid?
17
- assert_equal 4, config.options.length
18
17
  end
19
18
 
20
19
  def test_config_latlng_set
21
20
  config = GmapsGeocoding::Config.new({latlng: '40.714224,-73.961452'})
22
21
  assert_not_nil config
23
22
  assert_equal true, config.valid?
24
- assert_equal 4, config.options.length
25
23
  end
26
24
 
27
25
  def test_config_address_latlng_set
28
26
  config = GmapsGeocoding::Config.new({address: 'Tour Eiffel, IDF, Paris, France', latlng: '40.714224,-73.961452'})
29
27
  assert_not_nil config
30
28
  assert_equal false, config.valid?
31
- assert_equal 5, config.options.length
29
+ end
30
+
31
+ def test_config_url
32
+ config = GmapsGeocoding::Config.new({url: 'http://fakeurl.com'})
33
+ assert_equal 'http://fakeurl.com', config.url
32
34
  end
33
35
 
34
36
  def test_api_json_set
35
37
  opts = {address: 'Tour Eiffel, Paris, IDF, France', output: 'json'}
36
38
  api = GmapsGeocoding::Api.new(opts)
37
- result = api.get_location
38
39
  assert_not_nil api
39
- assert_not_nil result
40
- assert_equal 4, api.config.options.length
40
+
41
+ result_location = api.get_location
42
+ assert_not_nil result_location
43
+ assert_kind_of Hash, result_location
44
+ assert_include result_location, 'results'
45
+
46
+ result_latlng = api.get_finest_latlng(result_location['results'])
47
+ assert_not_nil result_latlng
48
+ assert_instance_of Array, result_latlng
41
49
  end
42
50
 
43
51
  def test_api_xml_set
44
52
  opts = {address: 'Tour Eiffel, Paris, IDF, France', output: 'xml'}
45
53
  api = GmapsGeocoding::Api.new(opts)
46
- result = api.get_location
47
54
  assert_not_nil api
48
- assert_not_nil result
49
- assert_equal 4, api.config.options.length
55
+
56
+ result_location = api.get_location
57
+ assert_not_nil result_location
58
+ assert_kind_of Hash, result_location
59
+ assert_include result_location, 'result'
60
+
61
+ result_latlng = api.get_finest_latlng(result_location['result'])
62
+ assert_not_nil result_latlng
63
+ assert_instance_of Array, result_latlng
50
64
  end
51
65
  end
@@ -0,0 +1,6 @@
1
+ require 'simplecov'
2
+
3
+ SimpleCov.start do
4
+ add_filter 'test'
5
+ end
6
+ SimpleCov.command_name 'Unit Tests'
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmaps_geocoding
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Christian Kakesa
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-17 00:00:00.000000000 Z
11
+ date: 2013-07-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rest-client
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: yajl-ruby
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,68 +41,74 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: nori
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
53
- version: 2.0.4
47
+ version: 2.2.0
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
61
- version: 2.0.4
54
+ version: 2.2.0
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: nokogiri
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ~>
68
60
  - !ruby/object:Gem::Version
69
- version: 1.4.0
61
+ version: 1.6.0
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ~>
76
67
  - !ruby/object:Gem::Version
77
- version: 1.4.0
68
+ version: 1.6.0
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: bundler
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
85
- version: '1.3'
75
+ version: 1.3.5
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
93
- version: '1.3'
82
+ version: 1.3.5
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rake
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: yard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
100
102
  - !ruby/object:Gem::Version
101
103
  version: '0'
102
104
  type: :development
103
105
  prerelease: false
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
107
  requirements:
107
- - - ! '>='
108
+ - - '>='
108
109
  - !ruby/object:Gem::Version
109
110
  version: '0'
110
- description: ! "\n A simple Ruby gem for Google Maps Geocoding API.\n This gem
111
+ description: "\n A simple Ruby gem for Google Maps Geocoding API.\n This gem
111
112
  return a Ruby Hash object of the result.\n "
112
113
  email:
113
114
  - christian.kakesa@gmail.com
@@ -119,6 +120,7 @@ files:
119
120
  - .ruby-version
120
121
  - .travis.yml
121
122
  - .versions.conf
123
+ - .yardopts
122
124
  - Gemfile
123
125
  - LICENSE.txt
124
126
  - README.md
@@ -129,36 +131,32 @@ files:
129
131
  - lib/gmaps_geocoding/config.rb
130
132
  - lib/gmaps_geocoding/version.rb
131
133
  - test/gmaps_geocoding_test.rb
134
+ - test/test_helper.rb
132
135
  homepage: https://github.com/fenicks/gmaps_geocoding
133
136
  licenses:
134
137
  - MIT
138
+ metadata: {}
135
139
  post_install_message:
136
140
  rdoc_options: []
137
141
  require_paths:
138
142
  - lib
139
143
  required_ruby_version: !ruby/object:Gem::Requirement
140
- none: false
141
144
  requirements:
142
- - - ! '>='
145
+ - - '>='
143
146
  - !ruby/object:Gem::Version
144
147
  version: '0'
145
- segments:
146
- - 0
147
- hash: 2934266397705908237
148
148
  required_rubygems_version: !ruby/object:Gem::Requirement
149
- none: false
150
149
  requirements:
151
- - - ! '>='
150
+ - - '>='
152
151
  - !ruby/object:Gem::Version
153
152
  version: '0'
154
- segments:
155
- - 0
156
- hash: 2934266397705908237
157
153
  requirements: []
158
154
  rubyforge_project:
159
- rubygems_version: 1.8.25
155
+ rubygems_version: 2.0.3
160
156
  signing_key:
161
- specification_version: 3
157
+ specification_version: 4
162
158
  summary: Use Google Geocoding API from Ruby.
163
159
  test_files:
164
160
  - test/gmaps_geocoding_test.rb
161
+ - test/test_helper.rb
162
+ has_rdoc: