sniff 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +73 -0
- data/lib/sniff/active_record_ext.rb +12 -0
- data/lib/sniff/conversions_ext.rb +45 -0
- data/lib/sniff/database.rb +157 -0
- data/lib/sniff/emitter.rb +65 -0
- data/lib/sniff/tasks.rb +14 -0
- data/lib/sniff/timeframe.rb +251 -0
- data/lib/sniff.rb +31 -0
- data/lib/test_support/data_models/census_division.rb +9 -0
- data/lib/test_support/data_models/census_region.rb +9 -0
- data/lib/test_support/data_models/climate_division.rb +8 -0
- data/lib/test_support/data_models/country.rb +9 -0
- data/lib/test_support/data_models/egrid_region.rb +7 -0
- data/lib/test_support/data_models/egrid_subregion.rb +8 -0
- data/lib/test_support/data_models/gender.rb +6 -0
- data/lib/test_support/data_models/petroleum_administration_for_defense_district.rb +9 -0
- data/lib/test_support/data_models/state.rb +13 -0
- data/lib/test_support/data_models/urbanity.rb +6 -0
- data/lib/test_support/data_models/zip_code.rb +14 -0
- data/lib/test_support/db/fixtures/census_divisions.csv +10 -0
- data/lib/test_support/db/fixtures/census_regions.csv +5 -0
- data/lib/test_support/db/fixtures/climate_divisions.csv +360 -0
- data/lib/test_support/db/fixtures/countries.csv +247 -0
- data/lib/test_support/db/fixtures/egrid_regions.csv +6 -0
- data/lib/test_support/db/fixtures/egrid_subregions.csv +27 -0
- data/lib/test_support/db/fixtures/genders.csv +3 -0
- data/lib/test_support/db/fixtures/petroleum_administration_for_defense_districts.csv +8 -0
- data/lib/test_support/db/fixtures/states.csv +58 -0
- data/lib/test_support/db/fixtures/urbanities.csv +5 -0
- data/lib/test_support/db/fixtures/yearly_anonymous_emissions.csv +0 -0
- data/lib/test_support/db/fixtures/yearly_typical_emissions.csv +0 -0
- data/lib/test_support/db/fixtures/zip_codes.csv +3390 -0
- data/lib/test_support/db/schema.rb +117 -0
- data/spec/lib/sniff/database_spec.rb +22 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +5 -0
- data/vendor/geokit-rails/CHANGELOG.rdoc +46 -0
- data/vendor/geokit-rails/MIT-LICENSE +20 -0
- data/vendor/geokit-rails/README.markdown +561 -0
- data/vendor/geokit-rails/Rakefile +18 -0
- data/vendor/geokit-rails/about.yml +9 -0
- data/vendor/geokit-rails/assets/api_keys_template +61 -0
- data/vendor/geokit-rails/init.rb +1 -0
- data/vendor/geokit-rails/install.rb +14 -0
- data/vendor/geokit-rails/lib/geokit-rails/acts_as_mappable.rb +456 -0
- data/vendor/geokit-rails/lib/geokit-rails/adapters/abstract.rb +31 -0
- data/vendor/geokit-rails/lib/geokit-rails/adapters/mysql.rb +22 -0
- data/vendor/geokit-rails/lib/geokit-rails/adapters/postgresql.rb +22 -0
- data/vendor/geokit-rails/lib/geokit-rails/adapters/sqlserver.rb +43 -0
- data/vendor/geokit-rails/lib/geokit-rails/defaults.rb +22 -0
- data/vendor/geokit-rails/lib/geokit-rails/geocoder_control.rb +16 -0
- data/vendor/geokit-rails/lib/geokit-rails/ip_geocode_lookup.rb +46 -0
- data/vendor/geokit-rails/lib/geokit-rails.rb +24 -0
- data/vendor/geokit-rails/test/acts_as_mappable_test.rb +474 -0
- data/vendor/geokit-rails/test/boot.rb +25 -0
- data/vendor/geokit-rails/test/database.yml +20 -0
- data/vendor/geokit-rails/test/fixtures/companies.yml +7 -0
- data/vendor/geokit-rails/test/fixtures/custom_locations.yml +54 -0
- data/vendor/geokit-rails/test/fixtures/locations.yml +54 -0
- data/vendor/geokit-rails/test/fixtures/mock_addresses.yml +17 -0
- data/vendor/geokit-rails/test/fixtures/mock_families.yml +2 -0
- data/vendor/geokit-rails/test/fixtures/mock_houses.yml +9 -0
- data/vendor/geokit-rails/test/fixtures/mock_organizations.yml +5 -0
- data/vendor/geokit-rails/test/fixtures/mock_people.yml +5 -0
- data/vendor/geokit-rails/test/fixtures/stores.yml +0 -0
- data/vendor/geokit-rails/test/ip_geocode_lookup_test.rb +77 -0
- data/vendor/geokit-rails/test/models/company.rb +3 -0
- data/vendor/geokit-rails/test/models/custom_location.rb +12 -0
- data/vendor/geokit-rails/test/models/location.rb +4 -0
- data/vendor/geokit-rails/test/models/mock_address.rb +4 -0
- data/vendor/geokit-rails/test/models/mock_family.rb +3 -0
- data/vendor/geokit-rails/test/models/mock_house.rb +3 -0
- data/vendor/geokit-rails/test/models/mock_organization.rb +4 -0
- data/vendor/geokit-rails/test/models/mock_person.rb +4 -0
- data/vendor/geokit-rails/test/models/store.rb +3 -0
- data/vendor/geokit-rails/test/schema.rb +60 -0
- data/vendor/geokit-rails/test/tasks.rake +31 -0
- data/vendor/geokit-rails/test/test_helper.rb +23 -0
- metadata +492 -0
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'sniff/database'
|
2
|
+
|
3
|
+
Sniff::Database.define_schema do
|
4
|
+
create_table "census_divisions", :primary_key => "number", :id => false, :force => true do |t|
|
5
|
+
t.string "number"
|
6
|
+
t.string "name"
|
7
|
+
t.string "census_region_name"
|
8
|
+
t.integer "census_region_number"
|
9
|
+
t.datetime "created_at"
|
10
|
+
t.datetime "updated_at"
|
11
|
+
end
|
12
|
+
|
13
|
+
create_table "census_regions", :primary_key => "number", :id => false, :force => true do |t|
|
14
|
+
t.string "number"
|
15
|
+
t.string "name"
|
16
|
+
t.datetime "created_at"
|
17
|
+
t.datetime "updated_at"
|
18
|
+
end
|
19
|
+
|
20
|
+
create_table "climate_divisions", :primary_key => "name", :id => false, :force => true do |t|
|
21
|
+
t.string "name"
|
22
|
+
t.float "heating_degree_days"
|
23
|
+
t.float "cooling_degree_days"
|
24
|
+
t.string "state_postal_abbreviation"
|
25
|
+
t.datetime "created_at"
|
26
|
+
t.datetime "updated_at"
|
27
|
+
end
|
28
|
+
|
29
|
+
create_table "countries", :primary_key => "iso_3166_code", :id => false, :force => true do |t|
|
30
|
+
t.string "iso_3166_code"
|
31
|
+
t.string "name"
|
32
|
+
t.datetime "created_at"
|
33
|
+
t.datetime "updated_at"
|
34
|
+
end
|
35
|
+
|
36
|
+
create_table "egrid_regions", :primary_key => "name", :id => false, :force => true do |t|
|
37
|
+
t.string "name"
|
38
|
+
t.float "loss_factor"
|
39
|
+
t.string "loss_factor_units"
|
40
|
+
t.datetime "updated_at"
|
41
|
+
t.datetime "created_at"
|
42
|
+
end
|
43
|
+
|
44
|
+
create_table "egrid_subregions", :primary_key => "abbreviation", :id => false, :force => true do |t|
|
45
|
+
t.string "abbreviation"
|
46
|
+
t.string "name"
|
47
|
+
t.float "electricity_emission_factor"
|
48
|
+
t.string "electricity_emission_factor_units"
|
49
|
+
t.string "nerc_abbreviation"
|
50
|
+
t.string "egrid_region_name"
|
51
|
+
t.datetime "updated_at"
|
52
|
+
t.datetime "created_at"
|
53
|
+
end
|
54
|
+
|
55
|
+
create_table "fallbacks", :force => true do |t|
|
56
|
+
t.string "name"
|
57
|
+
t.text "values"
|
58
|
+
t.datetime "created_at"
|
59
|
+
t.datetime "updated_at"
|
60
|
+
end
|
61
|
+
|
62
|
+
create_table "genders", :primary_key => "name", :id => false, :force => true do |t|
|
63
|
+
t.string "name"
|
64
|
+
t.datetime "created_at"
|
65
|
+
t.datetime "updated_at"
|
66
|
+
end
|
67
|
+
|
68
|
+
create_table "petroleum_administration_for_defense_districts", :primary_key => "code", :id => false, :force => true do |t|
|
69
|
+
t.string "code"
|
70
|
+
t.string "district_code"
|
71
|
+
t.string "district_name"
|
72
|
+
t.string "subdistrict_code"
|
73
|
+
t.string "subdistrict_name"
|
74
|
+
t.datetime "updated_at"
|
75
|
+
t.datetime "created_at"
|
76
|
+
end
|
77
|
+
|
78
|
+
create_table "states", :primary_key => "postal_abbreviation", :id => false, :force => true do |t|
|
79
|
+
t.string "postal_abbreviation"
|
80
|
+
t.integer "fips_code"
|
81
|
+
t.string "name"
|
82
|
+
t.string "census_division_number"
|
83
|
+
t.string "petroleum_administration_for_defense_district_code"
|
84
|
+
t.datetime "updated_at"
|
85
|
+
t.datetime "created_at"
|
86
|
+
end
|
87
|
+
|
88
|
+
create_table "urbanities", :primary_key => "name", :id => false, :force => true do |t|
|
89
|
+
t.string "name"
|
90
|
+
t.datetime "created_at"
|
91
|
+
t.datetime "updated_at"
|
92
|
+
end
|
93
|
+
|
94
|
+
create_table "yearly_anonymous_emissions", :force => true do |t|
|
95
|
+
t.string "component"
|
96
|
+
t.integer "year"
|
97
|
+
t.float "emission"
|
98
|
+
end
|
99
|
+
|
100
|
+
create_table "yearly_typical_emissions", :force => true do |t|
|
101
|
+
t.string "component"
|
102
|
+
t.integer "year"
|
103
|
+
t.float "emission"
|
104
|
+
end
|
105
|
+
|
106
|
+
create_table "zip_codes", :primary_key => "name", :id => false, :force => true do |t|
|
107
|
+
t.string "name"
|
108
|
+
t.string "state_postal_abbreviation"
|
109
|
+
t.string "description"
|
110
|
+
t.string "latitude"
|
111
|
+
t.string "longitude"
|
112
|
+
t.string "egrid_subregion_abbreviation"
|
113
|
+
t.string "climate_division_name"
|
114
|
+
t.datetime "created_at"
|
115
|
+
t.datetime "updated_at"
|
116
|
+
end
|
117
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
describe Sniff::Database do
|
5
|
+
describe '#connect' do
|
6
|
+
before :all do
|
7
|
+
@db_path = File.join(File.dirname(__FILE__), '..', '..', '..')
|
8
|
+
Sniff.init(@db_path)
|
9
|
+
@sqlite_path = File.join(@db_path, 'db', 'emitter_data.sqlite3')
|
10
|
+
end
|
11
|
+
after :all do
|
12
|
+
FileUtils.rm_f(@sqlite_path)
|
13
|
+
end
|
14
|
+
it 'should create an sqlite database in the given directory' do
|
15
|
+
File.exists?(@sqlite_path).should be_true
|
16
|
+
end
|
17
|
+
it 'should load data' do
|
18
|
+
ZipCode.count.should > 0
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
== 2009-10-02 / Version 1.2.0
|
2
|
+
* Overhaul the test suite to be independent of a Rails project
|
3
|
+
* Added concept of database adapter. Ported mysql/postgresql conditional code to their own adapter.
|
4
|
+
* Added SQL Server support. THANKS http://github.com/brennandunn for all the improvements in this release
|
5
|
+
|
6
|
+
== 2009-09-26 / Version 1.1.3
|
7
|
+
* documentation updates and updated to work with Geokit gem v1.5.0
|
8
|
+
* IMPORTANT: in the Geokit gem, Geokit::Geocoders::timeout became Geokit::Geocoders::request_timeout for jruby compatibility.
|
9
|
+
The plugin sets this in config/initializers/geokit_config.rb. So if you've upgraded the gem to 1.5.0, you need to
|
10
|
+
make the change manually from Geokit::Geocoders::timeout to Geokit::Geocoders::request_timeout in config/initializers/geokit_config.rb
|
11
|
+
|
12
|
+
== 2009-06-08 / Version 1.1.2
|
13
|
+
* Added support for hashes in :through. So you can do: acts_as_mappable :through => { :state => :country } (Thanks José Valim).
|
14
|
+
|
15
|
+
== 2009-05-22 / Version 1.1.1
|
16
|
+
* Support for multiple ip geocoders (Thanks dreamcat4)
|
17
|
+
* Now checks if either :origin OR :bounds is passed, and proceeds with geokit query if this is true (Thanks Glenn Powell)
|
18
|
+
* Raises a helpful error if someone uses through but the association does not exists or was not defined yet (Thanks José Valim)
|
19
|
+
|
20
|
+
== 2009-04-11 / Version 1.1.0
|
21
|
+
* Fixed :through usages so that the through model is only included in the query if there
|
22
|
+
is an :origin passed in (Only if it is a geokit search) (Thanks Glenn Powell)
|
23
|
+
* Move library initialisation into lib/geokit-rails. init.rb uses lib/geokit-rails now (thanks Alban Peignier)
|
24
|
+
* Handle the case where a user passes a hash to the :conditions Finder option (thanks Adam Greene)
|
25
|
+
* Added ability to specify domain-specific API keys (Thanks Glenn Powell)
|
26
|
+
|
27
|
+
== 2009-02-20
|
28
|
+
* More powerful assosciations in the Rails Plugin:You can now specify a model as mappable "through" an associated model.
|
29
|
+
In other words, that associated model is the actual mappable model with "lat" and "lng" attributes, but this "through" model
|
30
|
+
can still utilize all Geokit's "find by distance" finders. Also Rails 2.3 compatibility (thanks github/glennpow)
|
31
|
+
|
32
|
+
== 2008-12-18
|
33
|
+
* Split Rails plugin from geocoder gem
|
34
|
+
* updated for Rails 2.2.2
|
35
|
+
|
36
|
+
== 2008-08-20
|
37
|
+
* Further fix of distance calculation, this time in SQL. Now uses least() function, which is available in MySQL version 3.22.5+ and postgres versions 8.1+
|
38
|
+
|
39
|
+
== 2008-01-16
|
40
|
+
* fixed the "zero-distance" bug (calculating between two points that are the same)
|
41
|
+
|
42
|
+
== 2007-11-12
|
43
|
+
* fixed a small but with queries crossing meridian, and also fixed find(:closest)
|
44
|
+
|
45
|
+
== 2007-10-11
|
46
|
+
* Fixed Rails2/Edge compatability
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2007 Bill Eisenhauer & Andre Lewis
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|