earth 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/CHANGELOG +6 -0
  2. data/Rakefile +0 -3
  3. data/TODO +1 -1
  4. data/ar17.html +2093 -0
  5. data/data/air/aircraft.csv +7 -0
  6. data/data/air/airports.csv +1 -0
  7. data/earth.gemspec +4 -3
  8. data/errata/airline/bts_carrier_codes_errata.csv +74 -10
  9. data/errata/airport/openflights_errata.csv +7 -0
  10. data/errata/flight_segment/bts_errata.csv +1 -0
  11. data/lib/earth/air/aircraft.rb +1 -1
  12. data/lib/earth/air/aircraft/data_miner.rb +1 -1
  13. data/lib/earth/air/airline.rb +1 -1
  14. data/lib/earth/air/airline/data_miner.rb +6 -10
  15. data/lib/earth/air/airport.rb +6 -6
  16. data/lib/earth/air/bts_aircraft.rb +1 -1
  17. data/lib/earth/air/flight_segment.rb +1 -1
  18. data/lib/earth/automobile/automobile_activity_year_type.rb +1 -1
  19. data/lib/earth/automobile/automobile_activity_year_type_fuel/data_miner.rb +3 -3
  20. data/lib/earth/automobile/automobile_make_model_year_variant.rb +2 -2
  21. data/lib/earth/automobile/automobile_make_model_year_variant/data_miner.rb +1 -1
  22. data/lib/earth/automobile/automobile_type_fuel_year.rb +1 -1
  23. data/lib/earth/automobile/automobile_type_fuel_year/data_miner.rb +2 -2
  24. data/lib/earth/automobile/automobile_type_fuel_year_control.rb +1 -1
  25. data/lib/earth/insolation_scopes.rb +10 -0
  26. data/lib/earth/loader.rb +0 -7
  27. data/lib/earth/locality/climate_division.rb +3 -3
  28. data/lib/earth/locality/climate_division_month.rb +28 -0
  29. data/lib/earth/locality/climate_division_month/data_miner.rb +140 -0
  30. data/lib/earth/locality/direct_normal_insolation.rb +37 -0
  31. data/lib/earth/locality/direct_normal_insolation/data_miner.rb +41 -0
  32. data/lib/earth/locality/egrid_subregion.rb +4 -1
  33. data/lib/earth/locality/electricity_mix.rb +9 -1
  34. data/lib/earth/locality/global_horizontal_insolation.rb +37 -0
  35. data/lib/earth/locality/global_horizontal_insolation/data_miner.rb +41 -0
  36. data/lib/earth/locality/photovoltaic_insolation.rb +37 -0
  37. data/lib/earth/locality/photovoltaic_insolation/data_miner.rb +41 -0
  38. data/lib/earth/locality/zip_code.rb +9 -15
  39. data/lib/earth/residence/residence_fuel_price.rb +1 -1
  40. data/lib/earth/tasks.rb +5 -0
  41. data/lib/earth/version.rb +1 -1
  42. data/spec/data_mining_spec.rb +1 -1
  43. data/spec/earth/air/aircraft_spec.rb +2 -2
  44. data/spec/earth/air/airline_spec.rb +1 -1
  45. data/spec/earth/air/airport_spec.rb +1 -1
  46. data/spec/earth/air/bts_aircraft_spec.rb +1 -1
  47. data/spec/earth/air/flight_segment_spec.rb +19 -21
  48. data/spec/earth/automobile/automobile_make_model_year_variant_spec.rb +1 -1
  49. data/spec/earth/locality/climate_division_month_spec.rb +23 -0
  50. data/spec/earth/locality/direct_normal_insolation_spec.rb +8 -0
  51. data/spec/earth/locality/global_horizontal_insolation_spec.rb +8 -0
  52. data/spec/earth/locality/photovoltaic_insolation_spec.rb +8 -0
  53. data/spec/earth/locality/zip_code_spec.rb +1 -10
  54. data/spec/earth_spec.rb +1 -1
  55. data/spec/spec_helper.rb +1 -1
  56. metadata +261 -410
  57. data/data/air/airlines.csv +0 -45
  58. data/vendor/geokit-rails/.gitignore +0 -2
  59. data/vendor/geokit-rails/CHANGELOG.rdoc +0 -49
  60. data/vendor/geokit-rails/MIT-LICENSE +0 -20
  61. data/vendor/geokit-rails/README.markdown +0 -569
  62. data/vendor/geokit-rails/Rakefile +0 -18
  63. data/vendor/geokit-rails/about.yml +0 -11
  64. data/vendor/geokit-rails/assets/api_keys_template +0 -61
  65. data/vendor/geokit-rails/init.rb +0 -2
  66. data/vendor/geokit-rails/install.rb +0 -14
  67. data/vendor/geokit-rails/lib/geokit-rails.rb +0 -28
  68. data/vendor/geokit-rails/lib/geokit-rails/acts_as_mappable.rb +0 -469
  69. data/vendor/geokit-rails/lib/geokit-rails/adapters/abstract.rb +0 -31
  70. data/vendor/geokit-rails/lib/geokit-rails/adapters/mysql.rb +0 -22
  71. data/vendor/geokit-rails/lib/geokit-rails/adapters/mysql2.rb +0 -22
  72. data/vendor/geokit-rails/lib/geokit-rails/adapters/postgresql.rb +0 -22
  73. data/vendor/geokit-rails/lib/geokit-rails/adapters/sqlserver.rb +0 -43
  74. data/vendor/geokit-rails/lib/geokit-rails/defaults.rb +0 -22
  75. data/vendor/geokit-rails/lib/geokit-rails/geocoder_control.rb +0 -16
  76. data/vendor/geokit-rails/lib/geokit-rails/ip_geocode_lookup.rb +0 -46
  77. data/vendor/geokit-rails/test/acts_as_mappable_test.rb +0 -474
  78. data/vendor/geokit-rails/test/boot.rb +0 -25
  79. data/vendor/geokit-rails/test/database.yml +0 -25
  80. data/vendor/geokit-rails/test/fixtures/companies.yml +0 -7
  81. data/vendor/geokit-rails/test/fixtures/custom_locations.yml +0 -54
  82. data/vendor/geokit-rails/test/fixtures/locations.yml +0 -54
  83. data/vendor/geokit-rails/test/fixtures/mock_addresses.yml +0 -17
  84. data/vendor/geokit-rails/test/fixtures/mock_families.yml +0 -2
  85. data/vendor/geokit-rails/test/fixtures/mock_houses.yml +0 -9
  86. data/vendor/geokit-rails/test/fixtures/mock_organizations.yml +0 -5
  87. data/vendor/geokit-rails/test/fixtures/mock_people.yml +0 -5
  88. data/vendor/geokit-rails/test/fixtures/stores.yml +0 -0
  89. data/vendor/geokit-rails/test/ip_geocode_lookup_test.rb +0 -77
  90. data/vendor/geokit-rails/test/models/company.rb +0 -3
  91. data/vendor/geokit-rails/test/models/custom_location.rb +0 -12
  92. data/vendor/geokit-rails/test/models/location.rb +0 -4
  93. data/vendor/geokit-rails/test/models/mock_address.rb +0 -4
  94. data/vendor/geokit-rails/test/models/mock_family.rb +0 -3
  95. data/vendor/geokit-rails/test/models/mock_house.rb +0 -3
  96. data/vendor/geokit-rails/test/models/mock_organization.rb +0 -4
  97. data/vendor/geokit-rails/test/models/mock_person.rb +0 -4
  98. data/vendor/geokit-rails/test/models/store.rb +0 -3
  99. data/vendor/geokit-rails/test/schema.rb +0 -60
  100. data/vendor/geokit-rails/test/tasks.rake +0 -31
  101. data/vendor/geokit-rails/test/test_helper.rb +0 -23
@@ -1,25 +0,0 @@
1
- require 'active_support'
2
- require 'active_support/test_case'
3
-
4
- require 'test/unit'
5
- require 'test/unit/testcase'
6
- require 'active_support/testing/setup_and_teardown'
7
-
8
- require 'active_record'
9
- require 'active_record/fixtures'
10
-
11
- require 'action_controller'
12
- require 'action_controller/test_process'
13
-
14
- PLUGIN_ROOT = File.join(File.dirname(__FILE__), '..')
15
- ADAPTER = ENV['DB'] || 'mysql'
16
-
17
- $LOAD_PATH << File.join(PLUGIN_ROOT, 'lib') << File.join(PLUGIN_ROOT, 'test', 'models')
18
-
19
- FIXTURES_PATH = File.join(PLUGIN_ROOT, 'test', 'fixtures')
20
- ActiveRecord::Base.configurations = config = YAML::load(IO.read(File.join(PLUGIN_ROOT, 'test', 'database.yml')))
21
- ActiveRecord::Base.logger = Logger.new(File.join(PLUGIN_ROOT, 'test', "#{ADAPTER}-debug.log"))
22
- ActiveRecord::Base.establish_connection(config[ADAPTER])
23
-
24
- ActiveRecord::Migration.verbose = false
25
- load File.join(PLUGIN_ROOT, 'test', 'schema.rb')
@@ -1,25 +0,0 @@
1
- baes: &base
2
- host: localhost
3
- username: root
4
- password:
5
-
6
- mysql:
7
- adapter: mysql
8
- database: geokit_plugin_test
9
- <<: *base
10
-
11
- mysql2:
12
- adapter: mysql2
13
- database: geokit_plugin_test
14
- <<: *base
15
-
16
- postgresql:
17
- adapter: postgresql
18
- database: geokit_plugin_test
19
- <<: *base
20
-
21
- sqlserver:
22
- adapter: sqlserver
23
- mode: ODBC
24
- dsn: geokit_tests
25
- username: ruby
@@ -1,7 +0,0 @@
1
- starbucks:
2
- id: 1
3
- name: Starbucks
4
-
5
- barnes_and_noble:
6
- id: 2
7
- name: Barnes & Noble
@@ -1,54 +0,0 @@
1
- a:
2
- id: 1
3
- company_id: 1
4
- street: 7979 N MacArthur Blvd
5
- city: Irving
6
- state: TX
7
- postal_code: 75063
8
- latitude: 32.918593
9
- longitude: -96.958444
10
- b:
11
- id: 2
12
- company_id: 1
13
- street: 7750 N Macarthur Blvd # 160
14
- city: Irving
15
- state: TX
16
- postal_code: 75063
17
- latitude: 32.914144
18
- longitude: -96.958444
19
- c:
20
- id: 3
21
- company_id: 1
22
- street: 5904 N Macarthur Blvd # 160
23
- city: Irving
24
- state: TX
25
- postal_code: 75039
26
- latitude: 32.895155
27
- longitude: -96.958444
28
- d:
29
- id: 4
30
- company_id: 1
31
- street: 817 S Macarthur Blvd # 145
32
- city: Coppell
33
- state: TX
34
- postal_code: 75019
35
- latitude: 32.951613
36
- longitude: -96.958444
37
- e:
38
- id: 5
39
- company_id: 1
40
- street: 106 N Denton Tap Rd # 350
41
- city: Coppell
42
- state: TX
43
- postal_code: 75019
44
- latitude: 32.969527
45
- longitude: -96.990159
46
- f:
47
- id: 6
48
- company_id: 2
49
- street: 5904 N Macarthur Blvd # 160
50
- city: Irving
51
- state: TX
52
- postal_code: 75039
53
- latitude: 32.895155
54
- longitude: -96.958444
@@ -1,54 +0,0 @@
1
- a:
2
- id: 1
3
- company_id: 1
4
- street: 7979 N MacArthur Blvd
5
- city: Irving
6
- state: TX
7
- postal_code: 75063
8
- lat: 32.918593
9
- lng: -96.958444
10
- b:
11
- id: 2
12
- company_id: 1
13
- street: 7750 N Macarthur Blvd # 160
14
- city: Irving
15
- state: TX
16
- postal_code: 75063
17
- lat: 32.914144
18
- lng: -96.958444
19
- c:
20
- id: 3
21
- company_id: 1
22
- street: 5904 N Macarthur Blvd # 160
23
- city: Irving
24
- state: TX
25
- postal_code: 75039
26
- lat: 32.895155
27
- lng: -96.958444
28
- d:
29
- id: 4
30
- company_id: 1
31
- street: 817 S Macarthur Blvd # 145
32
- city: Coppell
33
- state: TX
34
- postal_code: 75019
35
- lat: 32.951613
36
- lng: -96.958444
37
- e:
38
- id: 5
39
- company_id: 1
40
- street: 106 N Denton Tap Rd # 350
41
- city: Coppell
42
- state: TX
43
- postal_code: 75019
44
- lat: 32.969527
45
- lng: -96.990159
46
- f:
47
- id: 6
48
- company_id: 2
49
- street: 5904 N Macarthur Blvd # 160
50
- city: Irving
51
- state: TX
52
- postal_code: 75039
53
- lat: 32.895155
54
- lng: -96.958444
@@ -1,17 +0,0 @@
1
- address_starbucks:
2
- addressable: starbucks (MockOrganization)
3
- street: 106 N Denton Tap Rd # 350
4
- city: Coppell
5
- state: TX
6
- postal_code: 75019
7
- lat: 32.969527
8
- lng: -96.990159
9
-
10
- address_barnes_and_noble:
11
- addressable: barnes_and_noble (MockOrganization)
12
- street: 5904 N Macarthur Blvd # 160
13
- city: Irving
14
- state: TX
15
- postal_code: 75039
16
- lat: 32.895155
17
- lng: -96.958444
@@ -1,2 +0,0 @@
1
- my_family:
2
- mock_house: my_house
@@ -1,9 +0,0 @@
1
- another_house:
2
- address: 106 N Denton Tap Rd # 350
3
- lat: 32.969527
4
- lng: -96.990159
5
-
6
- my_house:
7
- address: 5904 N Macarthur Blvd # 160
8
- lat: 32.895155
9
- lng: -96.958444
@@ -1,5 +0,0 @@
1
- starbucks:
2
- name: Starbucks
3
-
4
- barnes_and_noble:
5
- name: Barnes & Noble
@@ -1,5 +0,0 @@
1
- father:
2
- mock_family: my_family
3
-
4
- mother:
5
- mock_family: my_family
File without changes
@@ -1,77 +0,0 @@
1
- require 'test_helper'
2
-
3
- ActionController::Routing::Routes.draw do |map|
4
- map.connect ':controller/:action/:id'
5
- end
6
-
7
- class LocationAwareController < ActionController::Base #:nodoc: all
8
- geocode_ip_address
9
-
10
- def index
11
- render :nothing => true
12
- end
13
-
14
- def rescue_action(e) raise e end;
15
- end
16
-
17
- class ActionController::TestRequest #:nodoc: all
18
- attr_accessor :remote_ip
19
- end
20
-
21
- class IpGeocodeLookupTest < ActionController::TestCase
22
- tests LocationAwareController
23
-
24
- def setup
25
- @success = GeoKit::GeoLoc.new
26
- @success.provider = "hostip"
27
- @success.lat = 41.7696
28
- @success.lng = -88.4588
29
- @success.city = "Sugar Grove"
30
- @success.state = "IL"
31
- @success.country_code = "US"
32
- @success.success = true
33
-
34
- @failure = GeoKit::GeoLoc.new
35
- @failure.provider = "hostip"
36
- @failure.city = "(Private Address)"
37
- @failure.success = false
38
- end
39
-
40
- def test_no_location_in_cookie_or_session
41
- Geokit::Geocoders::MultiGeocoder.expects(:geocode).with("good ip").returns(@success)
42
- @request.remote_ip = "good ip"
43
- get :index
44
- verify
45
- end
46
-
47
- def test_location_in_cookie
48
- @request.remote_ip = "good ip"
49
- @request.cookies['geo_location'] = @success.to_yaml
50
- get :index
51
- verify
52
- end
53
-
54
- def test_location_in_session
55
- @request.remote_ip = "good ip"
56
- @request.session[:geo_location] = @success
57
- @request.cookies['geo_location'] = CGI::Cookie.new('geo_location', @success.to_yaml)
58
- get :index
59
- verify
60
- end
61
-
62
- def test_ip_not_located
63
- Geokit::Geocoders::MultiGeocoder.expects(:geocode).with("bad ip").returns(@failure)
64
- @request.remote_ip = "bad ip"
65
- get :index
66
- assert_nil @request.session[:geo_location]
67
- end
68
-
69
- private
70
-
71
- def verify
72
- assert_response :success
73
- assert_equal @success, @request.session[:geo_location]
74
- assert_not_nil cookies['geo_location']
75
- assert_equal @success, YAML.load(cookies['geo_location'])
76
- end
77
- end
@@ -1,3 +0,0 @@
1
- class Company < ActiveRecord::Base
2
- has_many :locations
3
- end
@@ -1,12 +0,0 @@
1
- class CustomLocation < ActiveRecord::Base
2
- belongs_to :company
3
- acts_as_mappable :distance_column_name => 'dist',
4
- :default_units => :kms,
5
- :default_formula => :flat,
6
- :lat_column_name => 'latitude',
7
- :lng_column_name => 'longitude'
8
-
9
- def to_s
10
- "lat: #{latitude} lng: #{longitude} dist: #{dist}"
11
- end
12
- end
@@ -1,4 +0,0 @@
1
- class Location < ActiveRecord::Base
2
- belongs_to :company
3
- acts_as_mappable
4
- end
@@ -1,4 +0,0 @@
1
- class MockAddress < ActiveRecord::Base
2
- belongs_to :addressable, :polymorphic => true
3
- acts_as_mappable
4
- end
@@ -1,3 +0,0 @@
1
- class MockFamily < ActiveRecord::Base
2
- belongs_to :mock_house
3
- end
@@ -1,3 +0,0 @@
1
- class MockHouse < ActiveRecord::Base
2
- acts_as_mappable
3
- end
@@ -1,4 +0,0 @@
1
- class MockOrganization < ActiveRecord::Base
2
- has_one :mock_address, :as => :addressable
3
- acts_as_mappable :through => :mock_address
4
- end
@@ -1,4 +0,0 @@
1
- class MockPerson < ActiveRecord::Base
2
- belongs_to :mock_family
3
- acts_as_mappable :through => { :mock_family => :mock_house }
4
- end
@@ -1,3 +0,0 @@
1
- class Store < ActiveRecord::Base
2
- acts_as_mappable :auto_geocode => true
3
- end
@@ -1,60 +0,0 @@
1
- ActiveRecord::Schema.define(:version => 0) do
2
- create_table :companies, :force => true do |t|
3
- t.column :name, :string
4
- end
5
-
6
- create_table :locations, :force => true do |t|
7
- t.column :company_id, :integer, :default => 0, :null => false
8
- t.column :street, :string, :limit => 60
9
- t.column :city, :string, :limit => 60
10
- t.column :state, :string, :limit => 2
11
- t.column :postal_code, :string, :limit => 16
12
- t.column :lat, :decimal, :precision => 15, :scale => 10
13
- t.column :lng, :decimal, :precision => 15, :scale => 10
14
- end
15
-
16
- create_table :custom_locations, :force => true do |t|
17
- t.column :company_id, :integer, :default => 0, :null => false
18
- t.column :street, :string, :limit => 60
19
- t.column :city, :string, :limit => 60
20
- t.column :state, :string, :limit => 2
21
- t.column :postal_code, :string, :limit => 16
22
- t.column :latitude, :decimal, :precision => 15, :scale => 10
23
- t.column :longitude, :decimal, :precision => 15, :scale => 10
24
- end
25
-
26
- create_table :stores, :force=> true do |t|
27
- t.column :address, :string
28
- t.column :lat, :decimal, :precision => 15, :scale => 10
29
- t.column :lng, :decimal, :precision => 15, :scale => 10
30
- end
31
-
32
- create_table :mock_organizations, :force => true do |t|
33
- t.column :name, :string
34
- end
35
-
36
- create_table :mock_addresses, :force => true do |t|
37
- t.column :addressable_id, :integer, :null => false
38
- t.column :addressable_type, :string, :null => false
39
- t.column :street, :string, :limit => 60
40
- t.column :city, :string, :limit => 60
41
- t.column :state, :string, :limit => 2
42
- t.column :postal_code, :string, :limit => 16
43
- t.column :lat, :decimal, :precision => 15, :scale => 10
44
- t.column :lng, :decimal, :precision => 15, :scale => 10
45
- end
46
-
47
- create_table :mock_houses, :force=> true do |t|
48
- t.column :address, :string
49
- t.column :lat, :decimal, :precision => 15, :scale => 10
50
- t.column :lng, :decimal, :precision => 15, :scale => 10
51
- end
52
-
53
- create_table :mock_families, :force => true do |t|
54
- t.belongs_to :mock_house
55
- end
56
-
57
- create_table :mock_people, :force => true do |t|
58
- t.belongs_to :mock_family
59
- end
60
- end
@@ -1,31 +0,0 @@
1
- require 'rake/testtask'
2
-
3
- desc 'Test the GeoKit plugin.'
4
- Rake::TestTask.new(:test) do |t|
5
- t.pattern = 'test/**/*_test.rb'
6
- t.verbose = true
7
- t.libs << 'test'
8
- end
9
-
10
- class EnvTestTask < Rake::TestTask
11
- attr_accessor :env
12
-
13
- def ruby(*args)
14
- env.each { |key, value| ENV[key] = value } if env
15
- super
16
- env.keys.each { |key| ENV.delete(key) } if env
17
- end
18
-
19
- end
20
-
21
- %w(mysql mysql2 postgresql sqlserver).each do |configuration|
22
- EnvTestTask.new("test_#{configuration}") do |t|
23
- t.pattern = 'test/**/*_test.rb'
24
- t.verbose = true
25
- t.env = { 'DB' => configuration }
26
- t.libs << 'test'
27
- end
28
- end
29
-
30
- desc 'Test available databases.'
31
- task :test_databases => %w(test_mysql test_postgresql test_sqlserver)