gcoder 0.12.0 → 0.12.1

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
@@ -1,3 +1,4 @@
1
+ Gemfile.lock
1
2
  coverage
2
3
  rdoc
3
4
  pkg
data/Gemfile CHANGED
@@ -1,2 +1,6 @@
1
1
  source :rubygems
2
2
  gemspec
3
+
4
+ group :development do
5
+ gem 'rake'
6
+ end
data/README.md CHANGED
@@ -4,14 +4,16 @@ GCoder geocodes stuff using the Google Geocoding API (V3) and caches the
4
4
  results somewhere, if you want. _(Need something more bulldozer-like? Check out
5
5
  [Geokit](http://github.com/andre/geokit-gem).)_
6
6
 
7
- # Bon Usage
7
+ ```ruby
8
+ # Bon Usage
8
9
 
9
- require 'gcoder'
10
+ require 'gcoder'
10
11
 
11
- G = GCoder.connect(:storage => :heap)
12
+ G = GCoder.connect(:storage => :heap)
12
13
 
13
- G['dundas and sorauren', :region => :ca] # ... it geocodes!
14
- G[[41.87, -74.16]] # ... and reverse-geocodes!
14
+ G['dundas and sorauren', :region => :ca] # ... it geocodes!
15
+ G[[41.87, -74.16]] # ... and reverse-geocodes!
16
+ ```
15
17
 
16
18
  The returned value is the 'results' portion of the Google Geocoding API
17
19
  [response](http://code.google.com/apis/maps/documentation/geocoding/#JSON).
@@ -43,7 +45,9 @@ of two latitude / longitude pairs. The first describes the Northeast corner of
43
45
  the box and the second describes the Southwest corner of the box. Here is an
44
46
  example input:
45
47
 
46
- [[50.09, -94.88], [41.87, -74.16]]
48
+ ```ruby
49
+ [[50.09, -94.88], [41.87, -74.16]]
50
+ ```
47
51
 
48
52
  More info [here](http://code.google.com/apis/maps/documentation/geocoding/#Viewports).
49
53
 
@@ -102,53 +106,57 @@ Making your own adapter is pretty easy. Your adapter needs to respond to four
102
106
  instance methods: `connect`, `set`, `get`, and `clear`. Let's make an adapter
103
107
  for Sequel.
104
108
 
105
- class SequelAdapter < GCoder::Storage::Adapter
106
- def connect
107
- @db = Sequel.connect(config[:connection])
108
- @table_name = (config[:table_name] || :gcoder_results)
109
- end
110
-
111
- # The methods `nkey` and `nval` are used to "normalize" keys and values,
112
- # respectively. You are encouraged to use them.
113
- def set(key, value)
114
- if get(key)
115
- table.filter(:id => nkey(key)).update(:value => nval(value))
116
- else
117
- table.insert(:id => nkey(key), :value => nval(value))
118
- end
119
- end
120
-
121
- def get(key)
122
- if (row = table.filter(:id => nkey(key)).first)
123
- row[:value]
124
- else
125
- nil
126
- end
127
- end
128
-
129
- def clear
130
- table.delete_all
131
- end
132
-
133
- private
134
-
135
- def table
136
- @db[@table_name]
137
- end
109
+ ```ruby
110
+ class SequelAdapter < GCoder::Storage::Adapter
111
+ def connect
112
+ @db = Sequel.connect(config[:connection])
113
+ @table_name = (config[:table_name] || :gcoder_results)
114
+ end
115
+
116
+ # The methods `nkey` and `nval` are used to "normalize" keys and values,
117
+ # respectively. You are encouraged to use them.
118
+ def set(key, value)
119
+ if get(key)
120
+ table.filter(:id => nkey(key)).update(:value => nval(value))
121
+ else
122
+ table.insert(:id => nkey(key), :value => nval(value))
138
123
  end
124
+ end
139
125
 
140
- GCoder::Storage.register(:sequel, SequelAdapter)
126
+ def get(key)
127
+ if (row = table.filter(:id => nkey(key)).first)
128
+ row[:value]
129
+ else
130
+ nil
131
+ end
132
+ end
133
+
134
+ def clear
135
+ table.delete_all
136
+ end
137
+
138
+ private
139
+
140
+ def table
141
+ @db[@table_name]
142
+ end
143
+ end
144
+
145
+ GCoder::Storage.register(:sequel, SequelAdapter)
146
+ ```
141
147
 
142
148
  Now we can use our adapter as a caching layer by specifying it like this:
143
149
 
144
- G = GCoder.connect \
145
- :storage => :sequel,
146
- :storage_config => {
147
- :connection => 'sqlite://geo.db',
148
- :table_name => :locations
149
- }
150
+ ```ruby
151
+ G = GCoder.connect \
152
+ :storage => :sequel,
153
+ :storage_config => {
154
+ :connection => 'sqlite://geo.db',
155
+ :table_name => :locations
156
+ }
157
+ ```
150
158
 
151
- ## Authors
159
+ ## Contributors
152
160
 
153
161
  * Carsten Nielsen
154
162
  * Christos Pappas (Added support for Google Maps API Premier and Rails.cache
data/Rakefile CHANGED
@@ -1,48 +1,12 @@
1
- require 'rubygems/specification' unless defined?(Gem::Specification)
2
- require 'rubygems/package_task'
3
- require 'rake/testtask'
4
-
5
- def gemspec
6
- @gemspec ||= begin
7
- Gem::Specification.load(File.expand_path('gcoder.gemspec'))
8
- end
9
- end
10
-
11
- task :default => :spec
12
-
13
- desc 'Start an irb console'
14
- task :console do
15
- system 'irb -I lib -r gcoder'
16
- end
17
-
18
- desc 'Validates the gemspec'
19
- task :gemspec do
20
- gemspec.validate
21
- end
22
-
23
- desc 'Displays the current version'
24
- task :version do
25
- puts "Current version: #{gemspec.version}"
26
- end
27
-
28
- desc 'Installs the gem locally'
29
- task :install => :package do
30
- sh "gem install pkg/#{gemspec.name}-#{gemspec.version}"
31
- end
32
-
33
- desc 'Release the gem'
34
- task :release => :package do
35
- sh "gem push pkg/#{gemspec.name}-#{gemspec.version}.gem"
36
- end
37
-
38
- Gem::PackageTask.new(gemspec) do |pkg|
39
- pkg.gem_spec = gemspec
40
- end
41
- task :gem => :gemspec
42
- task :package => :gemspec
1
+ require 'bundler/setup'
2
+ require 'bundler/gem_tasks'
3
+ require 'rake'
43
4
 
5
+ require 'rake/testtask'
44
6
  Rake::TestTask.new(:spec) do |t|
45
7
  t.libs += %w[gcoder spec]
46
8
  t.test_files = FileList['spec/**/*.rb']
47
9
  t.verbose = true
48
10
  end
11
+
12
+ task :default => :spec
data/gcoder.gemspec CHANGED
@@ -1,24 +1,27 @@
1
- # coding: utf-8
2
- require File.expand_path("../lib/gcoder/version", __FILE__)
1
+ require File.expand_path('../lib/gcoder/version', __FILE__)
3
2
 
4
3
  Gem::Specification.new do |s|
5
- s.name = 'gcoder'
6
- s.version = GCoder::VERSION
7
- s.platform = Gem::Platform::RUBY
8
- s.authors = ['Carsten Nielsen', 'Christos Pappas']
9
- s.email = ['heycarsten@gmail.com']
10
- s.homepage = 'http://github.com/heycarsten/gcoder'
11
- s.summary = %q{A nice library for geocoding stuff with Google Maps API V3}
12
- s.description = %q{Uses Google Maps Geocoding API (V3) to geocode stuff and optionally caches the results somewhere.}
13
-
14
- s.required_rubygems_version = '>= 1.8.5'
4
+ s.name = 'gcoder'
5
+ s.version = GCoder::VERSION
6
+ s.platform = Gem::Platform::RUBY
7
+ s.date = Date.today.strftime('%F')
8
+ s.homepage = 'http://github.com/heycarsten/gcoder'
9
+ s.authors = ['Carsten Nielsen', 'Christos Pappas']
10
+ s.email = 'heycarsten@gmail.com'
11
+ s.summary = 'A nice library for geocoding stuff with Google Maps API V3'
15
12
  s.rubyforge_project = 'gcoder'
13
+ s.files = `git ls-files`.split(?\n)
14
+ s.test_files = `git ls-files -- {test,spec}/*`.split(?\n)
15
+ s.require_paths = ['lib']
16
16
 
17
- s.add_dependency 'hashie'
18
- s.add_dependency 'yajl-ruby'
19
- s.add_dependency 'ruby-hmac'
17
+ s.add_dependency 'hashie'
18
+ s.add_dependency 'yajl-ruby'
19
+ s.add_dependency 'ruby-hmac'
20
+ s.add_development_dependency 'bundler', '>= 1.0.14'
21
+ s.add_development_dependency 'redis'
20
22
 
21
- s.files = `git ls-files`.split(?\n)
22
- s.test_files = `git ls-files -- {test,spec}/*`.split(?\n)
23
- s.require_paths = ['lib']
23
+ s.description = <<-END
24
+ Uses Google Maps Geocoding API (V3) to geocode stuff and optionally caches the
25
+ results somewhere.
26
+ END
24
27
  end
@@ -1,3 +1,3 @@
1
1
  module GCoder
2
- VERSION = '0.12.0'
2
+ VERSION = '0.12.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gcoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.12.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-07-15 00:00:00.000000000Z
13
+ date: 2011-10-04 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hashie
17
- requirement: &2160555480 !ruby/object:Gem::Requirement
17
+ requirement: &70147457520440 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2160555480
25
+ version_requirements: *70147457520440
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: yajl-ruby
28
- requirement: &2160554660 !ruby/object:Gem::Requirement
28
+ requirement: &70147457519540 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2160554660
36
+ version_requirements: *70147457519540
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: ruby-hmac
39
- requirement: &2160553960 !ruby/object:Gem::Requirement
39
+ requirement: &70147457518700 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,18 +44,42 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2160553960
48
- description: Uses Google Maps Geocoding API (V3) to geocode stuff and optionally caches
49
- the results somewhere.
50
- email:
51
- - heycarsten@gmail.com
47
+ version_requirements: *70147457518700
48
+ - !ruby/object:Gem::Dependency
49
+ name: bundler
50
+ requirement: &70147457455060 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: 1.0.14
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *70147457455060
59
+ - !ruby/object:Gem::Dependency
60
+ name: redis
61
+ requirement: &70147457454080 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *70147457454080
70
+ description: ! 'Uses Google Maps Geocoding API (V3) to geocode stuff and optionally
71
+ caches the
72
+
73
+ results somewhere.
74
+
75
+ '
76
+ email: heycarsten@gmail.com
52
77
  executables: []
53
78
  extensions: []
54
79
  extra_rdoc_files: []
55
80
  files:
56
81
  - .gitignore
57
82
  - Gemfile
58
- - Gemfile.lock
59
83
  - LICENSE
60
84
  - README.md
61
85
  - Rakefile
@@ -89,15 +113,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
113
  - - ! '>='
90
114
  - !ruby/object:Gem::Version
91
115
  version: '0'
116
+ segments:
117
+ - 0
118
+ hash: 3722071626544291887
92
119
  required_rubygems_version: !ruby/object:Gem::Requirement
93
120
  none: false
94
121
  requirements:
95
122
  - - ! '>='
96
123
  - !ruby/object:Gem::Version
97
- version: 1.8.5
124
+ version: '0'
125
+ segments:
126
+ - 0
127
+ hash: 3722071626544291887
98
128
  requirements: []
99
129
  rubyforge_project: gcoder
100
- rubygems_version: 1.8.5
130
+ rubygems_version: 1.8.6
101
131
  signing_key:
102
132
  specification_version: 3
103
133
  summary: A nice library for geocoding stuff with Google Maps API V3
data/Gemfile.lock DELETED
@@ -1,20 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- gcoder (0.12.0)
5
- hashie
6
- ruby-hmac
7
- yajl-ruby
8
-
9
- GEM
10
- remote: http://rubygems.org/
11
- specs:
12
- hashie (1.0.0)
13
- ruby-hmac (0.4.0)
14
- yajl-ruby (0.8.2)
15
-
16
- PLATFORMS
17
- ruby
18
-
19
- DEPENDENCIES
20
- gcoder!