geo_magic 0.2.4.1 → 0.2.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -91,9 +91,9 @@ Single Geocode Geocoder:
91
91
 
92
92
  <pre>
93
93
  # Use Graticule Multi geocoder, which tries multiple geocode services in succession!
94
- @geocoder = GeoMagic.geo_coder(:type => :geocode)
95
- @geocoder.configure File.expand_path('../fixtures/map_api_keys.yaml', File.dirname(__FILE__)), :development
96
- location = @geocoder.instance.geocode "Mullerstrasse 9, Munich"
94
+ geocoder = GeoMagic.geo_coder(:type => :geocode)
95
+ geocoder.configure File.expand_path('../fixtures/map_api_keys.yaml', File.dirname(__FILE__)), :development
96
+ location = geocoder.instance.geocode "Mullerstrasse 9, Munich"
97
97
  location.city
98
98
  </pre>
99
99
 
@@ -101,9 +101,9 @@ Single Graticule Geocoder:
101
101
 
102
102
  <pre>
103
103
  # Use Graticule Multi geocoder, which tries multiple geocode services in succession!
104
- @geocoder = GeoMagic.geo_coder(:type => graticule)
105
- @geocoder.configure File.expand_path('../fixtures/map_api_keys.yaml', File.dirname(__FILE__)), :development
106
- location = @geocoder.instance.geocode "Mullerstrasse 9, Munich"
104
+ geocoder = GeoMagic.geo_coder(:type => graticule)
105
+ geocoder.configure File.expand_path('../fixtures/map_api_keys.yaml', File.dirname(__FILE__)), :development
106
+ location = geocoder.instance.geocode "Mullerstrasse 9, Munich"
107
107
  location.city
108
108
  </pre>
109
109
 
@@ -111,7 +111,7 @@ Multi Graticule Geocoder:
111
111
 
112
112
  <pre>
113
113
  # Use Graticule Multi geocoder, which tries multiple geocode services in succession!
114
- @geocoder = GeoMagic.geo_coder(:type => graticule_multi)
114
+ geocoder = GeoMagic.geo_coder(:type => graticule_multi)
115
115
  ..
116
116
  </pre>
117
117
 
@@ -119,13 +119,26 @@ Multi Graticule Customization:
119
119
 
120
120
  <pre>
121
121
  # Use Graticule Multi geocoder, which tries multiple geocode services in succession!
122
- @geocoder = GeoMagic.geo_coder(:type => graticule_multi)
123
- location = @geocoder.instance(:timeout => 3) do |result|
122
+ geocoder = GeoMagic.geo_coder(:type => graticule_multi)
123
+ location = geocoder.instance(:timeout => 3) do |result|
124
124
  [:address, :street].include?(result.precision)]
125
125
  end
126
126
  ..
127
127
  </pre>
128
128
 
129
+ Geocoder in Rails:
130
+
131
+ <pre>
132
+ geocoder = GeoMagic.geo_coder(:env => :rails)
133
+ geocoder.configure
134
+
135
+ location = geocoder.instance.geocode "Mullerstrasse 9, Munich"
136
+ location.city.should == 'Munich'
137
+ </pre>
138
+
139
+ By default, the configuration expects a file in config/map_api_keys.yml containing the keys for each environment (see spec/fictures folder).
140
+ This can be customized if needed: @geocoder.configure '../my_keys.yaml'@
141
+
129
142
  h3. Create random points in Radius
130
143
 
131
144
  * @create_points_in_square@
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.4.1
1
+ 0.2.4.2
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{geo_magic}
8
- s.version = "0.2.4.1"
8
+ s.version = "0.2.4.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristian Mandrup"]
12
- s.date = %q{2011-01-28}
12
+ s.date = %q{2011-02-01}
13
13
  s.description = %q{Get IP and location data using freegeoip.net - can also calculate of distance between map points using haversine supporting multiple distance units}
14
14
  s.email = %q{kmandrup@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -43,9 +43,11 @@ Gem::Specification.new do |s|
43
43
  "lib/geo_magic/remote.rb",
44
44
  "lib/geo_magic/util.rb",
45
45
  "lib/rails/config.rb",
46
+ "spec/fixtures/config/map_api_keys.yml",
46
47
  "spec/fixtures/map_api_keys.yaml",
47
48
  "spec/fixtures/streets.de.yml",
48
49
  "spec/geo_magic/calculate_spec.rb",
50
+ "spec/geo_magic/geocoder_rails_spec.rb",
49
51
  "spec/geo_magic/geocoder_spec.rb",
50
52
  "spec/geo_magic/include_calc_spec.rb",
51
53
  "spec/geo_magic/include_remote_spec.rb",
@@ -63,6 +65,7 @@ Gem::Specification.new do |s|
63
65
  s.summary = %q{Get your IP and location data and calculate distances on the globe}
64
66
  s.test_files = [
65
67
  "spec/geo_magic/calculate_spec.rb",
68
+ "spec/geo_magic/geocoder_rails_spec.rb",
66
69
  "spec/geo_magic/geocoder_spec.rb",
67
70
  "spec/geo_magic/include_calc_spec.rb",
68
71
  "spec/geo_magic/include_remote_spec.rb",
@@ -18,8 +18,6 @@ module GeoMagic
18
18
  [:google, :yahoo]
19
19
  end
20
20
 
21
- protected
22
-
23
21
  services_available.each do |api|
24
22
  class_eval %{
25
23
  def #{api}_key
@@ -1,28 +1,18 @@
1
+ require 'geo_magic/geocode/config'
2
+
1
3
  module GeoMagic
2
4
  module RailsServiceAdapter
3
- attr_reader :geo_coder
4
-
5
- def geocode location_str
6
- raise 'method #geocode must be implemented by adapter subclass'
7
- end
8
-
9
- def reverse_geocode latitude, longitude
10
- raise 'method #reverse_geocode should be implemented by adapter subclass'
11
- end
12
-
13
- protected
5
+ include GeoMagic::ServiceAdapter
14
6
 
15
7
  def env
16
- ENV['HEROKU_SITE'] || ::Rails.env.downcase || 'development'
8
+ heroku = ENV['HEROKU_SITE'] if ENV
9
+ rails_env = ::Rails.env.downcase if ::Rails.env
10
+ heroku || rails_env || 'development'
17
11
  end
18
12
 
19
- def config
20
- @config ||= ::YAML.load_file("#{::Rails.root}/config/map_api_keys.yml")[env]
13
+ def configure file_name = 'map_api_keys.yml'
14
+ @config ||= ::YAML.load_file("#{::Rails.root}/config/#{file_name}")[env]
21
15
  end
22
-
23
- def google_key
24
- config['google_key']
25
- end
26
16
  end
27
17
  end
28
18
 
@@ -0,0 +1,4 @@
1
+ development:
2
+ google_key: "ABQIAAAAUzkItq4p7LYo2YIR_gtjpRTJQa0g3IQ9GZqIMmInSLzwtGDKaBSzEc8_FNxIfQLkpKOh9R4JB87Rig"
3
+ test:
4
+ google_key: "ABQIAAAAUzkItq4p7LYo2YIR_gtjpRTJQa0g3IQ9GZqIMmInSLzwtGDKaBSzEc8_FNxIfQLkpKOh9R4JB87Rig"
@@ -0,0 +1,37 @@
1
+ # Geocoder with Rails 3
2
+
3
+ # Expects map api keys (fx for google maps) to be defined in ROOT/config/map_api_keys.yml
4
+ # See spec/fixtures/map_api_keys.yml for example
5
+ #
6
+ # Use @geocoder.configure(path, env) to customize this
7
+
8
+ require 'spec_helper'
9
+ require 'geo_magic'
10
+ require 'helper/streets'
11
+
12
+ module Rails
13
+ def self.root
14
+ SPEC_DIR + '/fixtures'
15
+ end
16
+
17
+ def self.env
18
+ 'test'
19
+ end
20
+ end
21
+
22
+ describe "GeoMagic Geocoder" do
23
+ it "should geocode for rails" do
24
+ @geocoder = GeoMagic.geo_coder(:env => :rails)
25
+ @geocoder.configure
26
+ location = @geocoder.instance.geocode "Mullerstrasse 9, Munich"
27
+ location.city.should == 'Munich'
28
+ end
29
+
30
+
31
+ it "should geocode for rails with custom config file" do
32
+ @geocoder = GeoMagic.geo_coder(:env => :rails)
33
+ @geocoder.configure '../map_api_keys.yaml'
34
+ location = @geocoder.instance.geocode "Mullerstrasse 9, Munich"
35
+ location.city.should == 'Munich'
36
+ end
37
+ end
@@ -47,6 +47,8 @@ describe "GeoMagic Geocoder" do
47
47
  @geocoder = GeoMagic.geo_coder
48
48
  @geocoder.configure File.expand_path('../fixtures/map_api_keys.yaml', File.dirname(__FILE__)), :development
49
49
 
50
+ puts "config: #{@geocoder.config}"
51
+
50
52
  @streets = Streets.load :munich
51
53
  end
52
54
 
@@ -70,18 +72,5 @@ describe "GeoMagic Geocoder" do
70
72
  end
71
73
  end
72
74
  end
73
-
74
- # Geocoder with Rails 3
75
-
76
- # Expects map api keys (fx for google maps) to be defined in ROOT/config/map_api_keys.yml
77
- # See spec/fixtures/map_api_keys.yml for example
78
-
79
- # Use @geocoder.configure(path, env) to customize this
80
-
81
- # it "should geocode for rails" do
82
- # @geocoder = GeoMap.geo_coder(:env => :rails)
83
- # location = @geocoder.instance.geocode "Mullerstrasse 9, Munich"
84
- # location.city.should == 'Munich'
85
- # end
86
75
  end
87
76
 
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 0
7
7
  - 2
8
8
  - 4
9
- - 1
10
- version: 0.2.4.1
9
+ - 2
10
+ version: 0.2.4.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kristian Mandrup
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-28 00:00:00 +01:00
18
+ date: 2011-02-01 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -172,9 +172,11 @@ files:
172
172
  - lib/geo_magic/remote.rb
173
173
  - lib/geo_magic/util.rb
174
174
  - lib/rails/config.rb
175
+ - spec/fixtures/config/map_api_keys.yml
175
176
  - spec/fixtures/map_api_keys.yaml
176
177
  - spec/fixtures/streets.de.yml
177
178
  - spec/geo_magic/calculate_spec.rb
179
+ - spec/geo_magic/geocoder_rails_spec.rb
178
180
  - spec/geo_magic/geocoder_spec.rb
179
181
  - spec/geo_magic/include_calc_spec.rb
180
182
  - spec/geo_magic/include_remote_spec.rb
@@ -198,7 +200,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
198
200
  requirements:
199
201
  - - ">="
200
202
  - !ruby/object:Gem::Version
201
- hash: 3722236331284659990
203
+ hash: -3203749080952033166
202
204
  segments:
203
205
  - 0
204
206
  version: "0"
@@ -219,6 +221,7 @@ specification_version: 3
219
221
  summary: Get your IP and location data and calculate distances on the globe
220
222
  test_files:
221
223
  - spec/geo_magic/calculate_spec.rb
224
+ - spec/geo_magic/geocoder_rails_spec.rb
222
225
  - spec/geo_magic/geocoder_spec.rb
223
226
  - spec/geo_magic/include_calc_spec.rb
224
227
  - spec/geo_magic/include_remote_spec.rb