sniff 0.0.3 → 0.0.4

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.
Files changed (65) hide show
  1. data/README.markdown +5 -1
  2. data/lib/sniff.rb +4 -14
  3. data/lib/sniff/database.rb +20 -57
  4. data/lib/sniff/emitter.rb +12 -5
  5. data/spec/lib/sniff/database_spec.rb +8 -9
  6. metadata +56 -119
  7. data/lib/sniff/active_record_ext.rb +0 -12
  8. data/lib/sniff/conversions_ext.rb +0 -45
  9. data/lib/test_support/data_models/census_division.rb +0 -9
  10. data/lib/test_support/data_models/census_region.rb +0 -9
  11. data/lib/test_support/data_models/climate_division.rb +0 -8
  12. data/lib/test_support/data_models/country.rb +0 -9
  13. data/lib/test_support/data_models/egrid_region.rb +0 -7
  14. data/lib/test_support/data_models/egrid_subregion.rb +0 -8
  15. data/lib/test_support/data_models/gender.rb +0 -6
  16. data/lib/test_support/data_models/petroleum_administration_for_defense_district.rb +0 -9
  17. data/lib/test_support/data_models/state.rb +0 -13
  18. data/lib/test_support/data_models/urbanity.rb +0 -6
  19. data/lib/test_support/data_models/zip_code.rb +0 -14
  20. data/lib/test_support/db/fixtures/yearly_anonymous_emissions.csv +0 -0
  21. data/lib/test_support/db/fixtures/yearly_typical_emissions.csv +0 -0
  22. data/lib/test_support/db/schema.rb +0 -117
  23. data/spec/spec.opts +0 -2
  24. data/vendor/geokit-rails/CHANGELOG.rdoc +0 -46
  25. data/vendor/geokit-rails/MIT-LICENSE +0 -20
  26. data/vendor/geokit-rails/README.markdown +0 -561
  27. data/vendor/geokit-rails/Rakefile +0 -18
  28. data/vendor/geokit-rails/about.yml +0 -9
  29. data/vendor/geokit-rails/assets/api_keys_template +0 -61
  30. data/vendor/geokit-rails/init.rb +0 -1
  31. data/vendor/geokit-rails/install.rb +0 -14
  32. data/vendor/geokit-rails/lib/geokit-rails.rb +0 -24
  33. data/vendor/geokit-rails/lib/geokit-rails/acts_as_mappable.rb +0 -456
  34. data/vendor/geokit-rails/lib/geokit-rails/adapters/abstract.rb +0 -31
  35. data/vendor/geokit-rails/lib/geokit-rails/adapters/mysql.rb +0 -22
  36. data/vendor/geokit-rails/lib/geokit-rails/adapters/postgresql.rb +0 -22
  37. data/vendor/geokit-rails/lib/geokit-rails/adapters/sqlserver.rb +0 -43
  38. data/vendor/geokit-rails/lib/geokit-rails/defaults.rb +0 -22
  39. data/vendor/geokit-rails/lib/geokit-rails/geocoder_control.rb +0 -16
  40. data/vendor/geokit-rails/lib/geokit-rails/ip_geocode_lookup.rb +0 -46
  41. data/vendor/geokit-rails/test/acts_as_mappable_test.rb +0 -474
  42. data/vendor/geokit-rails/test/boot.rb +0 -25
  43. data/vendor/geokit-rails/test/database.yml +0 -20
  44. data/vendor/geokit-rails/test/fixtures/companies.yml +0 -7
  45. data/vendor/geokit-rails/test/fixtures/custom_locations.yml +0 -54
  46. data/vendor/geokit-rails/test/fixtures/locations.yml +0 -54
  47. data/vendor/geokit-rails/test/fixtures/mock_addresses.yml +0 -17
  48. data/vendor/geokit-rails/test/fixtures/mock_families.yml +0 -2
  49. data/vendor/geokit-rails/test/fixtures/mock_houses.yml +0 -9
  50. data/vendor/geokit-rails/test/fixtures/mock_organizations.yml +0 -5
  51. data/vendor/geokit-rails/test/fixtures/mock_people.yml +0 -5
  52. data/vendor/geokit-rails/test/fixtures/stores.yml +0 -0
  53. data/vendor/geokit-rails/test/ip_geocode_lookup_test.rb +0 -77
  54. data/vendor/geokit-rails/test/models/company.rb +0 -3
  55. data/vendor/geokit-rails/test/models/custom_location.rb +0 -12
  56. data/vendor/geokit-rails/test/models/location.rb +0 -4
  57. data/vendor/geokit-rails/test/models/mock_address.rb +0 -4
  58. data/vendor/geokit-rails/test/models/mock_family.rb +0 -3
  59. data/vendor/geokit-rails/test/models/mock_house.rb +0 -3
  60. data/vendor/geokit-rails/test/models/mock_organization.rb +0 -4
  61. data/vendor/geokit-rails/test/models/mock_person.rb +0 -4
  62. data/vendor/geokit-rails/test/models/store.rb +0 -3
  63. data/vendor/geokit-rails/test/schema.rb +0 -60
  64. data/vendor/geokit-rails/test/tasks.rake +0 -31
  65. 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,20 +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
- postgresql:
12
- adapter: postgresql
13
- database: geokit_plugin_test
14
- <<: *base
15
-
16
- sqlserver:
17
- adapter: sqlserver
18
- mode: ODBC
19
- dsn: geokit_tests
20
- 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 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)