geonames_client 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -8,7 +8,6 @@ group :development, :test do
8
8
  gem 'growl'
9
9
  gem 'guard-rspec'
10
10
  gem 'guard-shell'
11
- gem 'httparty'
12
11
  end
13
12
 
14
13
  # Specify your gem's dependencies in geonames_client.gemspec
@@ -1,3 +1,4 @@
1
+ require "geonames_client/numeric_extensions"
1
2
  require "geonames_client/version"
2
3
 
3
4
  module GeonamesClient
@@ -6,9 +7,3 @@ module GeonamesClient
6
7
  autoload :Service, 'geonames_client/service'
7
8
  autoload :ServiceDefinition, 'geonames_client/service_definition'
8
9
  end
9
-
10
- class Numeric
11
- def degrees
12
- self * Math::PI / 180
13
- end
14
- end
@@ -0,0 +1,5 @@
1
+ class Numeric
2
+ def degrees
3
+ self * Math::PI / 180
4
+ end
5
+ end
@@ -1,4 +1,9 @@
1
- require 'httparty'
1
+ begin
2
+ require 'httparty'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ require 'httparty'
6
+ end
2
7
 
3
8
  module GeonamesClient
4
9
  class Service
@@ -1,3 +1,3 @@
1
1
  module GeonamesClient
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geonames_client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 1
10
- version: 1.0.1
9
+ - 2
10
+ version: 1.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - C. Jason Harrelson
@@ -101,9 +101,9 @@ files:
101
101
  - Rakefile
102
102
  - geonames_client.gemspec
103
103
  - lib/geonames_client.rb
104
- - lib/geonames_client/_location.rb
105
104
  - lib/geonames_client/location.rb
106
105
  - lib/geonames_client/nearby_street.rb
106
+ - lib/geonames_client/numeric_extensions.rb
107
107
  - lib/geonames_client/service.rb
108
108
  - lib/geonames_client/service_definition.rb
109
109
  - lib/geonames_client/version.rb
@@ -1,68 +0,0 @@
1
- class Location
2
-
3
- def self.deg2rad(deg)
4
- (deg * Math::PI / 180)
5
- end
6
-
7
- def self.rad2deg(rad)
8
- (rad * 180 / Math::PI)
9
- end
10
-
11
- def self.acos(rad)
12
- Math.atan2(Math.sqrt(1 - rad**2), rad)
13
- end
14
-
15
- def self.distance_in_miles(loc1, loc2)
16
- lat1 = loc1.latitude
17
- lon1 = loc1.longitude
18
- lat2 = loc2.latitude
19
- lon2 = loc2.longitude
20
- theta = lon1 - lon2
21
-
22
- dist = Math.sin(self.deg2rad(lat1)) * Math.sin(deg2rad(lat2))
23
- + Math.cos(self.deg2rad(lat1)) * Math.cos(self.deg2rad(lat2)) * Math.cos(deg2rad(theta))
24
-
25
- dist = self.rad2deg(self.acos(dist))
26
-
27
- (dist * 60 * 1.1515).round #distance in miles
28
- end
29
-
30
- def miles_to(location)
31
- Location.distance_in_miles(self, location)
32
- end
33
-
34
- def self.locationArea(location, miles)
35
- radius = miles.to_f
36
- latR = radius / ((6076 / 5280) * 60)
37
- lonR = radius / (((Math.cos(location.latitude * Math::PI / 180) * 6076) / 5280) * 60)
38
-
39
- {
40
- :min_latitude => location.latitude - latR,
41
- :min_longitude => location.longitude - lonR,
42
- :max_latitude => location.latitude + latR,
43
- :max_longitude => location.longitude + lonR
44
- }
45
- end
46
-
47
- def self.location_ids_in_range(location, miles)
48
- la = Location.locationArea(location, miles)
49
- Location.find(:all,
50
- :select => Location.connection.quote_column_name( 'id' ),
51
- :conditions => ["(#{connection.quote_table_name 'locations'}.#{connection.quote_column_name 'latitude'} <= ?) AND (#{connection.quote_table_name 'locations'}.#{connection.quote_column_name 'latitude'} >= ?) AND " +
52
- "(#{connection.quote_table_name 'locations'}.#{connection.quote_column_name 'longitude'} >= ?) AND (#{connection.quote_table_name 'locations'}.#{connection.quote_column_name 'longitude'} <= ?)",
53
- la[:max_latitude], la[:min_latitude], la[:min_longitude], la[:max_longitude]
54
- ]
55
- ).collect { |l| l.id }
56
- end
57
-
58
- def self.locations_in_range(location, miles)
59
- la = Location.locationArea(location, miles)
60
- Location.find(:all,
61
- :conditions => ["(#{connection.quote_table_name 'locations'}.#{connection.quote_column_name 'latitude'} <= ?) AND (#{connection.quote_table_name 'locations'}.#{connection.quote_column_name 'latitude'} >= ?) AND " +
62
- "(#{connection.quote_table_name 'locations'}.#{connection.quote_column_name 'longitude'} >= ?) AND (#{connection.quote_table_name 'locations'}.#{connection.quote_column_name 'longitude'} <= ?)",
63
- la[:max_latitude], la[:min_latitude], la[:min_longitude], la[:max_longitude]
64
- ]
65
- )
66
- end
67
-
68
- end