geocoder 0.9.10 → 0.9.11

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of geocoder might be problematic. Click here for more details.

@@ -38,6 +38,10 @@ module ActiveRecord
38
38
  end
39
39
  end
40
40
 
41
+ # simulate Rails module so Railtie gets loaded
42
+ module Rails
43
+ end
44
+
41
45
  # Require Geocoder after ActiveRecord simulator.
42
46
  require 'geocoder'
43
47
  require "geocoder/lookups/base"
@@ -47,26 +51,53 @@ require "geocoder/lookups/base"
47
51
  #
48
52
  module Geocoder
49
53
  module Lookup
54
+ class Base
55
+ private #-----------------------------------------------------------------
56
+ def read_fixture(file)
57
+ File.read(File.join("test", "fixtures", file)).strip.gsub(/\n\s*/, "")
58
+ end
59
+ end
60
+
50
61
  class Google < Base
51
62
  private #-----------------------------------------------------------------
52
63
  def fetch_raw_data(query, reverse = false)
53
- file = query == "no results" ? :no_results : :madison_square_garden
54
- File.read(File.join("test", "fixtures", "google_#{file}.json"))
64
+ raise TimeoutError if query == "timeout"
65
+ file = case query
66
+ when "no results"; :no_results
67
+ when "no locality"; :no_locality
68
+ else :madison_square_garden
69
+ end
70
+ read_fixture "google_#{file}.json"
55
71
  end
56
72
  end
57
73
 
58
74
  class Yahoo < Base
59
75
  private #-----------------------------------------------------------------
60
76
  def fetch_raw_data(query, reverse = false)
77
+ raise TimeoutError if query == "timeout"
61
78
  file = query == "no results" ? :no_results : :madison_square_garden
62
- File.read(File.join("test", "fixtures", "yahoo_#{file}.json"))
79
+ read_fixture "yahoo_#{file}.json"
80
+ end
81
+ end
82
+
83
+ class GeocoderCa < Base
84
+ private #-----------------------------------------------------------------
85
+ def fetch_raw_data(query, reverse = false)
86
+ raise TimeoutError if query == "timeout"
87
+ if reverse
88
+ read_fixture "geocoder_ca_reverse.json"
89
+ else
90
+ file = query == "no results" ? :no_results : :madison_square_garden
91
+ read_fixture "geocoder_ca_#{file}.json"
92
+ end
63
93
  end
64
94
  end
65
95
 
66
96
  class Freegeoip < Base
67
97
  private #-----------------------------------------------------------------
68
98
  def fetch_raw_data(query, reverse = false)
69
- File.read(File.join("test", "fixtures", "freegeoip_74_200_247_59.json"))
99
+ raise TimeoutError if query == "timeout"
100
+ read_fixture "freegeoip_74_200_247_59.json"
70
101
  end
71
102
  end
72
103
  end
@@ -103,9 +134,9 @@ end
103
134
  # Geocoded model with block.
104
135
  #
105
136
  class Event < ActiveRecord::Base
106
- geocoded_by :address do |obj,result|
107
- if result
108
- obj.coordinates = "#{result.latitude},#{result.longitude}"
137
+ geocoded_by :address do |obj,results|
138
+ if result = results.first
139
+ obj.coords_string = "#{result.latitude},#{result.longitude}"
109
140
  end
110
141
  end
111
142
 
@@ -120,8 +151,8 @@ end
120
151
  # Reverse geocoded model with block.
121
152
  #
122
153
  class Party < ActiveRecord::Base
123
- reverse_geocoded_by :latitude, :longitude do |obj,result|
124
- if result
154
+ reverse_geocoded_by :latitude, :longitude do |obj,results|
155
+ if result = results.first
125
156
  obj.country = result.country_code
126
157
  end
127
158
  end
@@ -161,4 +192,12 @@ class Test::Unit::TestCase
161
192
  :msg => ["Madison Square Garden", 40.750354, -73.993371]
162
193
  }[abbrev]
163
194
  end
195
+
196
+ def all_lookups
197
+ Geocoder.send(:valid_lookups)
198
+ end
199
+
200
+ def street_lookups
201
+ all_lookups - [:freegeoip]
202
+ end
164
203
  end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geocoder
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 9
8
- - 10
9
- version: 0.9.10
4
+ prerelease:
5
+ version: 0.9.11
10
6
  platform: ruby
11
7
  authors:
12
8
  - Alex Reisner
@@ -14,11 +10,11 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-03-09 00:00:00 -05:00
13
+ date: 2011-03-25 00:00:00 -04:00
18
14
  default_executable:
19
15
  dependencies: []
20
16
 
21
- description: Provides object geocoding (by street or IP address), reverse geocoding (coordinates to street address), and distance calculations for geocoded objects. Designed for Rails but works with other frameworks too.
17
+ description: Provides object geocoding (by street or IP address), reverse geocoding (coordinates to street address), and distance calculations. Designed for Rails but works with other Rack frameworks too.
22
18
  email:
23
19
  - alex@alexreisner.com
24
20
  executables: []
@@ -35,10 +31,12 @@ files:
35
31
  - Rakefile
36
32
  - VERSION
37
33
  - lib/geocoder.rb
34
+ - lib/geocoder/cache.rb
38
35
  - lib/geocoder/calculations.rb
39
36
  - lib/geocoder/configuration.rb
40
37
  - lib/geocoder/lookups/base.rb
41
38
  - lib/geocoder/lookups/freegeoip.rb
39
+ - lib/geocoder/lookups/geocoder_ca.rb
42
40
  - lib/geocoder/lookups/google.rb
43
41
  - lib/geocoder/lookups/yahoo.rb
44
42
  - lib/geocoder/orms/active_record.rb
@@ -48,12 +46,17 @@ files:
48
46
  - lib/geocoder/request.rb
49
47
  - lib/geocoder/results/base.rb
50
48
  - lib/geocoder/results/freegeoip.rb
49
+ - lib/geocoder/results/geocoder_ca.rb
51
50
  - lib/geocoder/results/google.rb
52
51
  - lib/geocoder/results/yahoo.rb
53
52
  - lib/tasks/geocoder.rake
54
53
  - test/fixtures/freegeoip_74_200_247_59.json
54
+ - test/fixtures/geocoder_ca_madison_square_garden.json
55
+ - test/fixtures/geocoder_ca_no_results.json
56
+ - test/fixtures/geocoder_ca_reverse.json
55
57
  - test/fixtures/google_garbage.json
56
58
  - test/fixtures/google_madison_square_garden.json
59
+ - test/fixtures/google_no_locality.json
57
60
  - test/fixtures/google_no_results.json
58
61
  - test/fixtures/yahoo_garbage.json
59
62
  - test/fixtures/yahoo_madison_square_garden.json
@@ -61,7 +64,7 @@ files:
61
64
  - test/geocoder_test.rb
62
65
  - test/test_helper.rb
63
66
  has_rdoc: true
64
- homepage: http://github.com/alexreisner/geocoder
67
+ homepage: http://www.rubygeocoder.com
65
68
  licenses: []
66
69
 
67
70
  post_install_message:
@@ -70,23 +73,21 @@ rdoc_options: []
70
73
  require_paths:
71
74
  - lib
72
75
  required_ruby_version: !ruby/object:Gem::Requirement
76
+ none: false
73
77
  requirements:
74
78
  - - ">="
75
79
  - !ruby/object:Gem::Version
76
- segments:
77
- - 0
78
80
  version: "0"
79
81
  required_rubygems_version: !ruby/object:Gem::Requirement
82
+ none: false
80
83
  requirements:
81
84
  - - ">="
82
85
  - !ruby/object:Gem::Version
83
- segments:
84
- - 0
85
86
  version: "0"
86
87
  requirements: []
87
88
 
88
89
  rubyforge_project:
89
- rubygems_version: 1.3.6
90
+ rubygems_version: 1.5.1
90
91
  signing_key:
91
92
  specification_version: 3
92
93
  summary: Complete geocoding solution for Ruby.