koeppen_geiger 0.0.1 → 0.0.2
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.
- data/Manifest +0 -4
- data/README.rdoc +6 -3
- data/Rakefile +4 -6
- data/VERSION +1 -1
- data/koeppen_geiger.gemspec +4 -7
- data/lib/koeppen_geiger/climate_classification.rb +23 -6
- data/lib/koeppen_geiger/has_climate_classification.rb +28 -8
- data/lib/koeppen_geiger/pg_climate_classification.rb +24 -8
- data/lib/koeppen_geiger/utils.rb +15 -28
- data/lib/koeppen_geiger.rb +23 -0
- metadata +7 -35
- data/test/test_helper.rb +0 -5
- data/test/unit/climate_classification_test.rb +0 -5
- data/test/unit/pg_climate_classification_test.rb +0 -5
- data/test/unit/utils_test.rb +0 -5
- data.tar.gz.sig +0 -2
- metadata.gz.sig +0 -1
data/Manifest
CHANGED
data/README.rdoc
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
= KoeppenGeiger
|
2
2
|
|
3
|
-
This gem adds a climate classification parameter to a location object based upon observed or predicted climate data
|
3
|
+
This gem adds a climate classification parameter to a location object based upon observed or predicted climate data.
|
4
|
+
|
5
|
+
Read more about the Köppen-Geiger climate classification system at:
|
6
|
+
http://en.wikipedia.org/wiki/K%C3%B6ppen_climate_classification
|
4
7
|
|
5
8
|
== Installation
|
6
9
|
|
@@ -40,10 +43,10 @@ http://www.postgis.org/documentation/manual-1.5/ch02.html#id2630392
|
|
40
43
|
location = Location.find(1)
|
41
44
|
location.classify
|
42
45
|
|
43
|
-
location.classified(:observed,1901
|
46
|
+
location.classified(:observed,1901)
|
44
47
|
=> "Am"
|
45
48
|
|
46
|
-
location.classified(
|
49
|
+
location.classified("a2",2015).to_words
|
47
50
|
=> "Equatorial monsoon"
|
48
51
|
|
49
52
|
== Data
|
data/Rakefile
CHANGED
@@ -2,15 +2,13 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('koeppen_geiger', '0.0.
|
5
|
+
Echoe.new('koeppen_geiger', '0.0.2') do |p|
|
6
6
|
p.summary = "A Climate Classification Gem for ActiveRecord"
|
7
7
|
p.description = "A gem that adds a climate classification parameter based upon the Koeppen-Geiger climate classification system to a point location"
|
8
8
|
p.url = "http://github.com/tpunkt/koeppen_geiger"
|
9
9
|
p.author = "Tobias Weiss"
|
10
10
|
p.email = "tobias.weiss@gmail.com"
|
11
|
-
p.ignore_pattern = ["
|
11
|
+
p.ignore_pattern = FileList[".gitignore"]
|
12
12
|
p.development_dependencies = []
|
13
|
-
|
14
|
-
|
15
|
-
# Load rake files used with this gem
|
16
|
-
# Dir["#{File.dirname(__FILE__)}/lib/tasks/*.rake"].sort.each { |ext| load ext }
|
13
|
+
p.test_pattern = []
|
14
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/koeppen_geiger.gemspec
CHANGED
@@ -2,25 +2,22 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{koeppen_geiger}
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Tobias Weiss"]
|
9
|
-
s.date = %q{2011-
|
9
|
+
s.date = %q{2011-04-08}
|
10
10
|
s.description = %q{A gem that adds a climate classification parameter based upon the Koeppen-Geiger climate classification system to a point location}
|
11
11
|
s.email = %q{tobias.weiss@gmail.com}
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.rdoc", "lib/koeppen_geiger.rb", "lib/koeppen_geiger/climate_classification.rb", "lib/koeppen_geiger/has_climate_classification.rb", "lib/koeppen_geiger/pg_climate_classification.rb", "lib/koeppen_geiger/utils.rb", "lib/locales/de.yml", "lib/locales/en.yml", "lib/tasks/koeppen_geiger.rake"]
|
13
|
-
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README.rdoc", "Rakefile", "VERSION", "data/koeppen-geiger.zip", "generators/koeppen_geiger_generator.rb", "generators/templates/migration.rb", "lib/koeppen_geiger.rb", "lib/koeppen_geiger/climate_classification.rb", "lib/koeppen_geiger/has_climate_classification.rb", "lib/koeppen_geiger/pg_climate_classification.rb", "lib/koeppen_geiger/utils.rb", "lib/locales/de.yml", "lib/locales/en.yml", "lib/tasks/koeppen_geiger.rake", "
|
13
|
+
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README.rdoc", "Rakefile", "VERSION", "data/koeppen-geiger.zip", "generators/koeppen_geiger_generator.rb", "generators/templates/migration.rb", "lib/koeppen_geiger.rb", "lib/koeppen_geiger/climate_classification.rb", "lib/koeppen_geiger/has_climate_classification.rb", "lib/koeppen_geiger/pg_climate_classification.rb", "lib/koeppen_geiger/utils.rb", "lib/locales/de.yml", "lib/locales/en.yml", "lib/tasks/koeppen_geiger.rake", "koeppen_geiger.gemspec"]
|
14
14
|
s.homepage = %q{http://github.com/tpunkt/koeppen_geiger}
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Koeppen_geiger", "--main", "README.rdoc"]
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = %q{koeppen_geiger}
|
18
18
|
s.rubygems_version = %q{1.6.2}
|
19
19
|
s.summary = %q{A Climate Classification Gem for ActiveRecord}
|
20
|
-
|
21
|
-
s.signing_key = '/Users/tweiss/Documents/#private_keys/gem-private_key.pem'
|
22
|
-
s.cert_chain = ['gem-public_cert.pem']
|
23
|
-
|
20
|
+
|
24
21
|
if s.respond_to? :specification_version then
|
25
22
|
s.specification_version = 3
|
26
23
|
|
@@ -1,11 +1,5 @@
|
|
1
1
|
module KoeppenGeiger
|
2
2
|
|
3
|
-
# 1. Has a table in the RDBMS of the Rails App
|
4
|
-
# 2. Copy migration from lib/migrate/template.rb to RAILS_ROOT/db/migrate
|
5
|
-
# 3. Create table via rake db:migrate
|
6
|
-
# 5. Defines a method thats grabs climate classifications from PostgreSQL and store it in RDBMS after creation
|
7
|
-
# 6. Defines methods to get climate classification for a "scenario" and "time period"
|
8
|
-
|
9
3
|
class ClimateClassification < ActiveRecord::Base
|
10
4
|
|
11
5
|
CLIMATE_ZONES = {"11" => "Af","12" => "Am","13" => "As","14" => "Aw",
|
@@ -17,6 +11,15 @@ module KoeppenGeiger
|
|
17
11
|
"48" => "Dsd","49" => "Dwa","50" => "Dwb","51" => "Dwc",
|
18
12
|
"52" => "Dwd","61" => "EF","62" => "ET" }
|
19
13
|
|
14
|
+
TIME_RANGES = { "observed" => [1901..1925,1926..1950,1951..1975,1976..2000],
|
15
|
+
"a1f1" => [2001..2025,2026..2050,2051..2075,2076..2100],
|
16
|
+
"a2" => [2001..2025,2026..2050,2051..2075,2076..2100],
|
17
|
+
"b1" => [2001..2025,2026..2050,2051..2075,2076..2100],
|
18
|
+
"b2" => [2001..2025,2026..2050,2051..2075,2076..2100]}
|
19
|
+
|
20
|
+
SCENARIOS = ["observed","a1f1","a2","b1","b2"]
|
21
|
+
|
22
|
+
|
20
23
|
def self.create_column_name(*args)
|
21
24
|
args.join("_")
|
22
25
|
end
|
@@ -24,6 +27,20 @@ module KoeppenGeiger
|
|
24
27
|
def self.climate_zone_to_words(str)
|
25
28
|
I18n.t(str.downcase.to_sym, :scope => [:climate_zones])
|
26
29
|
end
|
30
|
+
|
31
|
+
def self.determine_time_range(scenario,year)
|
32
|
+
return nil unless KoeppenGeiger::ClimateClassification.valid_scenario?(scenario)
|
33
|
+
|
34
|
+
TIME_RANGES[scenario].each do |timerange|
|
35
|
+
return timerange if timerange.member?(year.to_i)
|
36
|
+
end
|
37
|
+
|
38
|
+
nil
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.valid_scenario?(scenario)
|
42
|
+
SCENARIOS.include?(scenario)
|
43
|
+
end
|
27
44
|
|
28
45
|
end
|
29
46
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module KoeppenGeiger
|
2
2
|
|
3
|
-
# Can be mixed into
|
3
|
+
# Can be mixed into a ActiveRecord class that has lat/lng columns
|
4
4
|
#
|
5
5
|
# Example:
|
6
6
|
# class Location < ActiveRecord::Base
|
@@ -9,9 +9,9 @@ module KoeppenGeiger
|
|
9
9
|
# end
|
10
10
|
#
|
11
11
|
# location = Location.find(1)
|
12
|
-
# location.climate_classification("observed",1901
|
12
|
+
# location.climate_classification("observed",1901)
|
13
13
|
# => "Cfa"
|
14
|
-
# location.climate_classification("
|
14
|
+
# location.climate_classification("a2",2025).to_words
|
15
15
|
# => "Equatorial climate, fully humid, hot summer"
|
16
16
|
#
|
17
17
|
# Declares a 1:1 association to the model when embedding has_climate_classification
|
@@ -23,8 +23,11 @@ module KoeppenGeiger
|
|
23
23
|
@@options = options
|
24
24
|
|
25
25
|
class_eval do
|
26
|
-
has_one :climate_classification, :class_name => "KoeppenGeiger::ClimateClassification", :foreign_key => "classified_id"
|
26
|
+
has_one :climate_classification, :class_name => "KoeppenGeiger::ClimateClassification", :foreign_key => "classified_id", :dependent => :destroy
|
27
27
|
|
28
|
+
#
|
29
|
+
# Adds available climate classifications to a location
|
30
|
+
#
|
28
31
|
def classify
|
29
32
|
unless @@options[:lat_column_name].nil? || @@options[:lng_column_name].nil?
|
30
33
|
self[:lat] = self[@@options[:lat_column_name].to_sym] || self[:lat]
|
@@ -34,15 +37,32 @@ module KoeppenGeiger
|
|
34
37
|
if self.has_coordinates?
|
35
38
|
self.climate_classification = KoeppenGeiger::ClimateClassification.new if self.climate_classification.nil?
|
36
39
|
pg_cc = KoeppenGeiger::PgClimateClassification.new
|
37
|
-
|
40
|
+
gridcodes = pg_cc.get_climate_zones(self[:lat],self[:lng])
|
41
|
+
|
42
|
+
# Delete instance to reconnect to former rails db
|
43
|
+
pg_cc.delete
|
44
|
+
|
45
|
+
self.climate_classification.attributes = gridcodes
|
38
46
|
self.climate_classification.save
|
39
47
|
else
|
40
|
-
"Object cannot be classified. Please specify correct column names and make sure your location has correct coordinates."
|
48
|
+
puts "Object cannot be classified. Please specify correct column names and make sure your location has correct coordinates."
|
41
49
|
end
|
42
50
|
end
|
43
51
|
|
44
|
-
|
45
|
-
|
52
|
+
# Returns a classification code for a certain scenario and year
|
53
|
+
#
|
54
|
+
# Example:
|
55
|
+
# location.classified("observed",1905)
|
56
|
+
#
|
57
|
+
def classified(scenario,year)
|
58
|
+
timerange = KoeppenGeiger::ClimateClassification.determine_time_range(scenario,year)
|
59
|
+
|
60
|
+
unless timerange.nil?
|
61
|
+
column_name = KoeppenGeiger::ClimateClassification.create_column_name(scenario,timerange.first.to_s,timerange.last.to_s).to_sym
|
62
|
+
return self.climate_classification[column_name] || "No value found"
|
63
|
+
else
|
64
|
+
return "No data found within the year #{year} in the scenario #{scenario}"
|
65
|
+
end
|
46
66
|
end
|
47
67
|
|
48
68
|
def has_coordinates?
|
@@ -7,8 +7,7 @@ module KoeppenGeiger
|
|
7
7
|
# http://snipplr.com/view/1849/tableless-model/
|
8
8
|
|
9
9
|
class PgClimateClassification < ActiveRecord::Base
|
10
|
-
|
11
|
-
|
10
|
+
|
12
11
|
def self.columns
|
13
12
|
@columns ||= []
|
14
13
|
end
|
@@ -20,6 +19,14 @@ module KoeppenGeiger
|
|
20
19
|
##########################
|
21
20
|
|
22
21
|
def initialize
|
22
|
+
begin
|
23
|
+
ActiveRecord::Base.establish_connection "koeppen_geiger"
|
24
|
+
rescue ActiveRecord::ConnectionNotEstablished
|
25
|
+
puts "Connection could not be established"
|
26
|
+
rescue ActiveRecord::AdapterNotSpecified
|
27
|
+
puts "Oops! Adapter not specified. This is okay when running rake:test"
|
28
|
+
end
|
29
|
+
|
23
30
|
get_scenario_tables
|
24
31
|
end
|
25
32
|
|
@@ -27,17 +34,18 @@ module KoeppenGeiger
|
|
27
34
|
# Get all tables from database to see how many different scenarios and timeperiods
|
28
35
|
# have been imported
|
29
36
|
#
|
30
|
-
# Each shapefile imported into the database
|
37
|
+
# Each shapefile imported into the database creates a new table
|
31
38
|
#
|
32
39
|
def get_scenario_tables
|
33
40
|
res = self.connection.execute( "SELECT table_name FROM information_schema.tables
|
34
|
-
|
35
|
-
|
36
|
-
|
41
|
+
WHERE table_schema = 'public'
|
42
|
+
AND table_name != 'geometry_columns'
|
43
|
+
AND table_name != 'spatial_ref_sys'")
|
37
44
|
@scenarios = []
|
38
45
|
if res.num_tuples >= 1
|
39
46
|
res.each do |tuple|
|
40
|
-
|
47
|
+
# The unless statement is only needed for testing purposes
|
48
|
+
@scenarios << tuple["table_name"] unless tuple["table_name"].eql?("locations")
|
41
49
|
end
|
42
50
|
else
|
43
51
|
puts "No data imported yet. Please run rake koeppen_geiger:db:import_data"
|
@@ -52,10 +60,18 @@ module KoeppenGeiger
|
|
52
60
|
gridcodes[scenario] = KoeppenGeiger::ClimateClassification::CLIMATE_ZONES[res.getvalue(0,0).to_s]
|
53
61
|
end
|
54
62
|
end
|
55
|
-
|
63
|
+
|
56
64
|
return gridcodes
|
57
65
|
end
|
58
66
|
|
67
|
+
#
|
68
|
+
# Reconnect to former database when instance is deleted
|
69
|
+
# otherwise the rails app starts operating on the wrong db
|
70
|
+
#
|
71
|
+
def delete
|
72
|
+
ActiveRecord::Base.establish_connection RAILS_ENV
|
73
|
+
end
|
74
|
+
|
59
75
|
end
|
60
76
|
|
61
77
|
end
|
data/lib/koeppen_geiger/utils.rb
CHANGED
@@ -4,20 +4,6 @@ module KoeppenGeiger
|
|
4
4
|
require 'zip/zip'
|
5
5
|
require 'fileutils'
|
6
6
|
|
7
|
-
# Steps
|
8
|
-
#
|
9
|
-
# 1. Add default configuration for koeppen_geiger to database.yml
|
10
|
-
#
|
11
|
-
# 2. Copy migration to create climate classifications table
|
12
|
-
#
|
13
|
-
# 3. run rake db:migrate [RAILS_ENV]
|
14
|
-
#
|
15
|
-
# 4. Create a spatially-enabled database in PostgreSQL
|
16
|
-
# http://postgis.org/documentation/manual-1.5/ch02.html#id2630392
|
17
|
-
#
|
18
|
-
# 5. Load GIS data via shp2pgsql into PostgreSQL database
|
19
|
-
# http://postgis.org/documentation/manual-1.5/ch04.html#shp2pgsql_usage
|
20
|
-
|
21
7
|
class Utils
|
22
8
|
|
23
9
|
@@rails_root = defined?(RAILS_ROOT) ? RAILS_ROOT : ""
|
@@ -45,26 +31,26 @@ module KoeppenGeiger
|
|
45
31
|
|
46
32
|
# Open database.yml and add config lines
|
47
33
|
def configure_db
|
48
|
-
|
49
|
-
|
34
|
+
begin
|
35
|
+
yaml = Utils.get_db_config
|
36
|
+
yaml = Hash.new unless yaml
|
50
37
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
38
|
+
unless yaml.has_key?("koeppen_geiger")
|
39
|
+
yaml.update(KoeppenGeiger::Utils::DEFAULT_CONFIG)
|
40
|
+
File.open(KoeppenGeiger::Utils::DB_CONFIG, 'w') do |out|
|
41
|
+
YAML::dump(yaml,out)
|
42
|
+
end
|
43
|
+
puts ">> Updated database.yml. Please enter correct username/password combination."
|
44
|
+
else
|
45
|
+
puts ">> Your database.yml has already been updated"
|
55
46
|
end
|
56
|
-
|
57
|
-
|
58
|
-
puts ">> Your database.yml has already been updated"
|
47
|
+
rescue Errno::ENOENT
|
48
|
+
raise StandardError, "Could not find database configuration file"
|
59
49
|
end
|
60
50
|
end
|
61
51
|
|
62
52
|
def get_db_config
|
63
|
-
|
64
|
-
YAML::load_file(KoeppenGeiger::Utils::DB_CONFIG)
|
65
|
-
rescue IOError
|
66
|
-
puts "Could not find database configuration file"
|
67
|
-
end
|
53
|
+
YAML::load_file(KoeppenGeiger::Utils::DB_CONFIG)
|
68
54
|
end
|
69
55
|
|
70
56
|
########
|
@@ -98,6 +84,7 @@ module KoeppenGeiger
|
|
98
84
|
filehash
|
99
85
|
end
|
100
86
|
|
87
|
+
# Extract compressed ziop data
|
101
88
|
def extract_gis_data
|
102
89
|
if File.exists?(KoeppenGeiger::Utils::ARCHIVE)
|
103
90
|
begin
|
data/lib/koeppen_geiger.rb
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#--
|
3
|
+
# Copyright (c) 2011 Tobias Weiss <tobias.weiss@gmail.com>
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
10
|
+
# furnished to do so, subject to the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
13
|
+
# copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
# SOFTWARE.
|
22
|
+
#++
|
23
|
+
|
1
24
|
require 'rubygems'
|
2
25
|
require 'active_record'
|
3
26
|
require 'active_support'
|
metadata
CHANGED
@@ -1,42 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: koeppen_geiger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tobias Weiss
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
|
-
cert_chain:
|
17
|
-
- |
|
18
|
-
-----BEGIN CERTIFICATE-----
|
19
|
-
MIIDOjCCAiKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBDMRUwEwYDVQQDDAx0b2Jp
|
20
|
-
YXMud2Vpc3MxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
|
21
|
-
A2NvbTAeFw0xMTAzMjMxMzQ1NDZaFw0xMjAzMjIxMzQ1NDZaMEMxFTATBgNVBAMM
|
22
|
-
DHRvYmlhcy53ZWlzczEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
23
|
-
LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl5YA7OBO
|
24
|
-
/oeOJIdLoGig5D/O2o9vaqizuVisG0W0Br88A5zLCoSC1KAZ6Wdtl3NqqN4CBJ2J
|
25
|
-
zeA82X1b25FjkxHMFBTGhcqBz9ubInX37myHsTq+BzejLakkYlxnpSyAvtYCYJBv
|
26
|
-
nk897vzgNugJUSpQK7p0NfsDA9Utku7ZyuOZ/sQJhZju2GhkNN4h5xMLYiaVdSPu
|
27
|
-
gRPv3d7U/T8ynK01TihhmSMPVjJJXBwxTkgm2pnN4Vt27OgI3qYSNa1LWSMMkste
|
28
|
-
VFKv0vbZmMT1P4WHAGLyIueyMPISwG0RBV2ki3zLd2PkO/8HVKb4MEuZ6ow6GTqf
|
29
|
-
aIgGM+zMvQtpfQIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
|
30
|
-
HQ4EFgQUglZplVwHjFDAGwgV1sNwgZvE1sAwDQYJKoZIhvcNAQEFBQADggEBAH/X
|
31
|
-
p6YgH9u+hI5Y6GP4apDwp6/5mTDrHi32URkK4DR+EYev9+7B5UhJirkRr+HwJkZq
|
32
|
-
s2t7bbeCP2Da6Q2fLIzHyapMSpxHXVsiEADDSOZu7a7IwWNie76+8A0bJLoglrI6
|
33
|
-
X5Z0+aLxpj9qLKvhseewhJ8ckUVWViLdIkw56Xco5BSPxI6SEtA9OkEY7hw/Tp7B
|
34
|
-
jzmvl/O54R4hAX2l/2+6TnBNKqk30Rcv4x6bHooTjF0/vs4qvuo9UwVxa+ZQ/xu1
|
35
|
-
RReLEXx35Rm+lRHb5X6nUkC80H2Y3FUBiykkPyJdURmVas5wQ0EwW1l/KEyXDoNY
|
36
|
-
ZHSsbf0Us43IP9I3KVo=
|
37
|
-
-----END CERTIFICATE-----
|
16
|
+
cert_chain: []
|
38
17
|
|
39
|
-
date: 2011-
|
18
|
+
date: 2011-04-08 00:00:00 +02:00
|
40
19
|
default_executable:
|
41
20
|
dependencies: []
|
42
21
|
|
@@ -76,10 +55,6 @@ files:
|
|
76
55
|
- lib/locales/de.yml
|
77
56
|
- lib/locales/en.yml
|
78
57
|
- lib/tasks/koeppen_geiger.rake
|
79
|
-
- test/test_helper.rb
|
80
|
-
- test/unit/climate_classification_test.rb
|
81
|
-
- test/unit/pg_climate_classification_test.rb
|
82
|
-
- test/unit/utils_test.rb
|
83
58
|
- koeppen_geiger.gemspec
|
84
59
|
has_rdoc: true
|
85
60
|
homepage: http://github.com/tpunkt/koeppen_geiger
|
@@ -121,8 +96,5 @@ rubygems_version: 1.6.2
|
|
121
96
|
signing_key:
|
122
97
|
specification_version: 3
|
123
98
|
summary: A Climate Classification Gem for ActiveRecord
|
124
|
-
test_files:
|
125
|
-
|
126
|
-
- test/unit/climate_classification_test.rb
|
127
|
-
- test/unit/pg_climate_classification_test.rb
|
128
|
-
- test/unit/utils_test.rb
|
99
|
+
test_files: []
|
100
|
+
|
data/test/test_helper.rb
DELETED
data/test/unit/utils_test.rb
DELETED
data.tar.gz.sig
DELETED
metadata.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
s��n
|