chicagowarehouse 0.4.6 → 0.4.7
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/Gemfile +1 -1
- data/Rakefile +1 -1
- data/chicagowarehouse.gemspec +6 -6
- data/lib/chicago/schema/dimension.rb +19 -5
- data/spec/schema/dimension_spec.rb +17 -5
- data/spec/star_schema_spec.rb +14 -14
- metadata +189 -175
data/Gemfile
CHANGED
data/Rakefile
CHANGED
|
@@ -14,7 +14,7 @@ require 'rake'
|
|
|
14
14
|
require 'jeweler'
|
|
15
15
|
Jeweler::Tasks.new do |gem|
|
|
16
16
|
gem.name = "chicagowarehouse"
|
|
17
|
-
gem.version = "0.4.
|
|
17
|
+
gem.version = "0.4.7"
|
|
18
18
|
gem.summary = "Ruby Data Warehousing"
|
|
19
19
|
gem.description = "Simple Data Warehouse toolkit for ruby"
|
|
20
20
|
gem.author = "Roland Swingler"
|
data/chicagowarehouse.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "chicagowarehouse"
|
|
8
|
-
s.version = "0.4.
|
|
8
|
+
s.version = "0.4.7"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Roland Swingler"]
|
|
12
|
-
s.date = "2014-
|
|
12
|
+
s.date = "2014-03-13"
|
|
13
13
|
s.description = "Simple Data Warehouse toolkit for ruby"
|
|
14
14
|
s.email = "roland.swingler@gmail.com"
|
|
15
15
|
s.extra_rdoc_files = [
|
|
@@ -83,14 +83,14 @@ Gem::Specification.new do |s|
|
|
|
83
83
|
s.homepage = "http://github.com/notonthehighstreet/chicago"
|
|
84
84
|
s.licenses = ["MIT"]
|
|
85
85
|
s.require_paths = ["lib"]
|
|
86
|
-
s.rubygems_version = "1.8.
|
|
86
|
+
s.rubygems_version = "1.8.28"
|
|
87
87
|
s.summary = "Ruby Data Warehousing"
|
|
88
88
|
|
|
89
89
|
if s.respond_to? :specification_version then
|
|
90
90
|
s.specification_version = 3
|
|
91
91
|
|
|
92
92
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
93
|
-
s.add_runtime_dependency(%q<sequel>, [">= 3.34"])
|
|
93
|
+
s.add_runtime_dependency(%q<sequel>, ["< 4.7", ">= 3.34"])
|
|
94
94
|
s.add_runtime_dependency(%q<sequel_migration_builder>, [">= 0.3.2"])
|
|
95
95
|
s.add_runtime_dependency(%q<chronic>, [">= 0"])
|
|
96
96
|
s.add_development_dependency(%q<mysql2>, [">= 0"])
|
|
@@ -104,7 +104,7 @@ Gem::Specification.new do |s|
|
|
|
104
104
|
s.add_development_dependency(%q<ZenTest>, [">= 0"])
|
|
105
105
|
s.add_development_dependency(%q<timecop>, [">= 0"])
|
|
106
106
|
else
|
|
107
|
-
s.add_dependency(%q<sequel>, [">= 3.34"])
|
|
107
|
+
s.add_dependency(%q<sequel>, ["< 4.7", ">= 3.34"])
|
|
108
108
|
s.add_dependency(%q<sequel_migration_builder>, [">= 0.3.2"])
|
|
109
109
|
s.add_dependency(%q<chronic>, [">= 0"])
|
|
110
110
|
s.add_dependency(%q<mysql2>, [">= 0"])
|
|
@@ -119,7 +119,7 @@ Gem::Specification.new do |s|
|
|
|
119
119
|
s.add_dependency(%q<timecop>, [">= 0"])
|
|
120
120
|
end
|
|
121
121
|
else
|
|
122
|
-
s.add_dependency(%q<sequel>, [">= 3.34"])
|
|
122
|
+
s.add_dependency(%q<sequel>, ["< 4.7", ">= 3.34"])
|
|
123
123
|
s.add_dependency(%q<sequel_migration_builder>, [">= 0.3.2"])
|
|
124
124
|
s.add_dependency(%q<chronic>, [">= 0"])
|
|
125
125
|
s.add_dependency(%q<mysql2>, [">= 0"])
|
|
@@ -58,6 +58,10 @@ module Chicago
|
|
|
58
58
|
@columns = opts[:columns] || []
|
|
59
59
|
@identifiers = opts[:identifiers] || []
|
|
60
60
|
@null_records = opts[:null_records] || []
|
|
61
|
+
@null_records.product(columns).each do |record, column|
|
|
62
|
+
record[column.name] = column.default_value unless record.has_key?(column.name)
|
|
63
|
+
end
|
|
64
|
+
|
|
61
65
|
@table_name = sprintf(DIMENSION_TABLE_FORMAT, name).to_sym
|
|
62
66
|
@key_table_name = sprintf(KEY_TABLE_FORMAT, @table_name).to_sym
|
|
63
67
|
@predetermined_values = !! opts[:predetermined_values]
|
|
@@ -74,12 +78,22 @@ module Chicago
|
|
|
74
78
|
# create null records for a temporary version of the table.
|
|
75
79
|
def create_null_records(db, overridden_table_name=nil)
|
|
76
80
|
table_to_populate = overridden_table_name || table_name
|
|
81
|
+
|
|
77
82
|
unless @null_records.empty?
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
begin
|
|
84
|
+
db[table_to_populate].insert_replace.
|
|
85
|
+
insert_multiple(@null_records)
|
|
86
|
+
rescue Exception => e
|
|
87
|
+
raise "Cannot populate null records for dimension #{name} (table #{table_to_populate})\n #{e.message}"
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
begin
|
|
91
|
+
if db.table_exists?(key_table_name)
|
|
92
|
+
ids = @null_records.map {|r| {:dimension_id => r[:id], :original_id => r[:original_id] || 0} }
|
|
93
|
+
db[key_table_name].insert_replace.insert_multiple(ids)
|
|
94
|
+
end
|
|
95
|
+
rescue Exception => e
|
|
96
|
+
raise "Cannot populate key table records for dimension #{name} (table #{table_to_populate})\n #{e.message}"
|
|
83
97
|
end
|
|
84
98
|
end
|
|
85
99
|
end
|
|
@@ -14,7 +14,7 @@ describe Chicago::Schema::Dimension do
|
|
|
14
14
|
it "can have a description" do
|
|
15
15
|
described_class.new(:foo, :description => "bar").description.should == "bar"
|
|
16
16
|
end
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
it "has columns" do
|
|
19
19
|
column = stub(:column)
|
|
20
20
|
described_class.new(:foo, :columns => [column]).
|
|
@@ -41,20 +41,32 @@ describe Chicago::Schema::Dimension do
|
|
|
41
41
|
described_class.new(:user, :identifiers => identifiers).
|
|
42
42
|
identifiers.should == identifiers
|
|
43
43
|
end
|
|
44
|
-
|
|
44
|
+
|
|
45
45
|
it "can have a main identifier" do
|
|
46
46
|
identifiers = [stub(:i), stub(:j)]
|
|
47
47
|
described_class.new(:user, :identifiers => identifiers).
|
|
48
48
|
main_identifier.should == identifiers.first
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
+
it "has null records" do
|
|
52
|
+
column = stub(:column, :name => :bar, :default_value => '')
|
|
53
|
+
|
|
54
|
+
options = {
|
|
55
|
+
:columns => [column],
|
|
56
|
+
:null_records => [{:id => 1}, {:id => 2, :bar => nil}]
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
described_class.new(:user, options).
|
|
60
|
+
null_records.should == [{:id => 1, :bar => ''}, {:id => 2, :bar => nil}]
|
|
61
|
+
end
|
|
62
|
+
|
|
51
63
|
it "can create null records in the database, replacing existing records" do
|
|
52
|
-
db = mock(:db)
|
|
64
|
+
db = mock(:db)
|
|
53
65
|
db.stub(:[]).and_return(db)
|
|
54
66
|
db.stub(:table_exists?).with(:keys_dimension_user).and_return(true)
|
|
55
67
|
db.should_receive(:insert_replace).twice.and_return(db)
|
|
56
68
|
db.should_receive(:insert_multiple).with([{:id => 1, :foo => :bar}])
|
|
57
|
-
db.should_receive(:insert_multiple).with([{:dimension_id => 1}])
|
|
69
|
+
db.should_receive(:insert_multiple).with([{:dimension_id => 1, :original_id => 0}])
|
|
58
70
|
described_class.new(:user,
|
|
59
71
|
:null_records => [{ :id => 1,
|
|
60
72
|
:foo => :bar}]).create_null_records(db)
|
|
@@ -118,7 +130,7 @@ describe Chicago::Schema::Dimension do
|
|
|
118
130
|
it "can have predetermined values" do
|
|
119
131
|
described_class.new(:countries, :predetermined_values => true).should have_predetermined_values
|
|
120
132
|
end
|
|
121
|
-
|
|
133
|
+
|
|
122
134
|
it "is visitable" do
|
|
123
135
|
visitor = mock(:visitor)
|
|
124
136
|
dimension = described_class.new(:foo)
|
data/spec/star_schema_spec.rb
CHANGED
|
@@ -24,15 +24,15 @@ describe Chicago::StarSchema do
|
|
|
24
24
|
specify "can be defined with columns" do
|
|
25
25
|
dimension = @schema.define_dimension(:user) do
|
|
26
26
|
columns { string :email }
|
|
27
|
-
end
|
|
27
|
+
end
|
|
28
28
|
dimension.should have_column_named(:email)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
specify "can define columns in multiple blocks" do
|
|
32
32
|
dimension = @schema.define_dimension(:user) do
|
|
33
33
|
columns { string :email }
|
|
34
|
-
columns { string :name }
|
|
35
|
-
end
|
|
34
|
+
columns { string :name }
|
|
35
|
+
end
|
|
36
36
|
dimension.should have_column_named(:name)
|
|
37
37
|
end
|
|
38
38
|
|
|
@@ -41,7 +41,7 @@ describe Chicago::StarSchema do
|
|
|
41
41
|
columns { string :email }
|
|
42
42
|
|
|
43
43
|
natural_key :email
|
|
44
|
-
end
|
|
44
|
+
end
|
|
45
45
|
|
|
46
46
|
dimension.natural_key.should == [:email]
|
|
47
47
|
end
|
|
@@ -52,21 +52,21 @@ describe Chicago::StarSchema do
|
|
|
52
52
|
end
|
|
53
53
|
dimension.description.should == "Hello"
|
|
54
54
|
end
|
|
55
|
-
|
|
55
|
+
|
|
56
56
|
specify "can have null records defined" do
|
|
57
57
|
dimension = @schema.define_dimension(:user) do
|
|
58
58
|
columns { string :email }
|
|
59
59
|
|
|
60
60
|
null_record :id => 1, :email => "Missing"
|
|
61
|
-
null_record :id => 2, :email => "Not Applicable"
|
|
62
|
-
end
|
|
61
|
+
null_record :id => 2, :email => "Not Applicable", :original_id => -1
|
|
62
|
+
end
|
|
63
63
|
|
|
64
64
|
db = stub(:db, :table_exists? => true)
|
|
65
65
|
db.stub_chain(:[], :insert_replace).and_return(db)
|
|
66
66
|
db.should_receive(:insert_multiple).with([{:id => 1, :email => "Missing"},
|
|
67
|
-
{:id => 2, :email => "Not Applicable"}])
|
|
68
|
-
db.should_receive(:insert_multiple).with([{:dimension_id => 1},
|
|
69
|
-
{:dimension_id => 2}])
|
|
67
|
+
{:id => 2, :email => "Not Applicable", :original_id => -1}])
|
|
68
|
+
db.should_receive(:insert_multiple).with([{:dimension_id => 1, :original_id => 0},
|
|
69
|
+
{:dimension_id => 2, :original_id => -1}])
|
|
70
70
|
dimension.create_null_records(db)
|
|
71
71
|
end
|
|
72
72
|
|
|
@@ -110,7 +110,7 @@ describe Chicago::StarSchema do
|
|
|
110
110
|
}.to raise_error(Chicago::MissingDefinitionError)
|
|
111
111
|
end
|
|
112
112
|
end
|
|
113
|
-
|
|
113
|
+
|
|
114
114
|
describe "facts" do
|
|
115
115
|
specify "are not defined initially" do
|
|
116
116
|
@schema.facts.should be_empty
|
|
@@ -192,7 +192,7 @@ describe Chicago::StarSchema do
|
|
|
192
192
|
end
|
|
193
193
|
fact.description.should == "Hello"
|
|
194
194
|
end
|
|
195
|
-
|
|
195
|
+
|
|
196
196
|
specify "can have a natural key defined" do
|
|
197
197
|
dim = @schema.define_dimension(:date)
|
|
198
198
|
fact = @schema.define_fact(:foo) do
|
|
@@ -200,11 +200,11 @@ describe Chicago::StarSchema do
|
|
|
200
200
|
|
|
201
201
|
natural_key :date
|
|
202
202
|
end
|
|
203
|
-
|
|
203
|
+
|
|
204
204
|
fact.natural_key.should == [:date]
|
|
205
205
|
end
|
|
206
206
|
end
|
|
207
|
-
|
|
207
|
+
|
|
208
208
|
it "allows definition of a fact and a dimension with the same name" do
|
|
209
209
|
@schema.define_fact(:user)
|
|
210
210
|
expect { @schema.define_dimension(:user) }.
|
metadata
CHANGED
|
@@ -1,218 +1,238 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: chicagowarehouse
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.4.7
|
|
5
5
|
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 4
|
|
9
|
-
- 6
|
|
10
|
-
version: 0.4.6
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
7
|
+
authors:
|
|
13
8
|
- Roland Swingler
|
|
14
9
|
autorequire:
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- !ruby/object:Gem::Dependency
|
|
21
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
|
22
|
-
none: false
|
|
23
|
-
requirements:
|
|
24
|
-
- - ">="
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
hash: 67
|
|
27
|
-
segments:
|
|
28
|
-
- 3
|
|
29
|
-
- 34
|
|
30
|
-
version: "3.34"
|
|
31
|
-
requirement: *id001
|
|
32
|
-
type: :runtime
|
|
33
|
-
prerelease: false
|
|
12
|
+
date: 2014-03-13 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
34
15
|
name: sequel
|
|
35
|
-
|
|
36
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
37
17
|
none: false
|
|
38
|
-
requirements:
|
|
39
|
-
- -
|
|
40
|
-
- !ruby/object:Gem::Version
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
- 2
|
|
46
|
-
version: 0.3.2
|
|
47
|
-
requirement: *id002
|
|
18
|
+
requirements:
|
|
19
|
+
- - <
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '4.7'
|
|
22
|
+
- - ! '>='
|
|
23
|
+
- !ruby/object:Gem::Version
|
|
24
|
+
version: '3.34'
|
|
48
25
|
type: :runtime
|
|
49
26
|
prerelease: false
|
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
29
|
+
requirements:
|
|
30
|
+
- - <
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '4.7'
|
|
33
|
+
- - ! '>='
|
|
34
|
+
- !ruby/object:Gem::Version
|
|
35
|
+
version: '3.34'
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
50
37
|
name: sequel_migration_builder
|
|
51
|
-
|
|
52
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
|
53
39
|
none: false
|
|
54
|
-
requirements:
|
|
55
|
-
- -
|
|
56
|
-
- !ruby/object:Gem::Version
|
|
57
|
-
|
|
58
|
-
segments:
|
|
59
|
-
- 0
|
|
60
|
-
version: "0"
|
|
61
|
-
requirement: *id003
|
|
40
|
+
requirements:
|
|
41
|
+
- - ! '>='
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: 0.3.2
|
|
62
44
|
type: :runtime
|
|
63
45
|
prerelease: false
|
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
47
|
+
none: false
|
|
48
|
+
requirements:
|
|
49
|
+
- - ! '>='
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: 0.3.2
|
|
52
|
+
- !ruby/object:Gem::Dependency
|
|
64
53
|
name: chronic
|
|
65
|
-
|
|
66
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
|
67
55
|
none: false
|
|
68
|
-
requirements:
|
|
69
|
-
- -
|
|
70
|
-
- !ruby/object:Gem::Version
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
- 0
|
|
74
|
-
version: "0"
|
|
75
|
-
requirement: *id004
|
|
76
|
-
type: :development
|
|
56
|
+
requirements:
|
|
57
|
+
- - ! '>='
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: '0'
|
|
60
|
+
type: :runtime
|
|
77
61
|
prerelease: false
|
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
63
|
+
none: false
|
|
64
|
+
requirements:
|
|
65
|
+
- - ! '>='
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
78
69
|
name: mysql2
|
|
79
|
-
|
|
80
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
81
71
|
none: false
|
|
82
|
-
requirements:
|
|
83
|
-
- -
|
|
84
|
-
- !ruby/object:Gem::Version
|
|
85
|
-
|
|
86
|
-
segments:
|
|
87
|
-
- 0
|
|
88
|
-
version: "0"
|
|
89
|
-
requirement: *id005
|
|
72
|
+
requirements:
|
|
73
|
+
- - ! '>='
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
90
76
|
type: :development
|
|
91
77
|
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
none: false
|
|
80
|
+
requirements:
|
|
81
|
+
- - ! '>='
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: '0'
|
|
84
|
+
- !ruby/object:Gem::Dependency
|
|
92
85
|
name: yard
|
|
93
|
-
|
|
94
|
-
version_requirements: &id006 !ruby/object:Gem::Requirement
|
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
|
95
87
|
none: false
|
|
96
|
-
requirements:
|
|
97
|
-
- -
|
|
98
|
-
- !ruby/object:Gem::Version
|
|
99
|
-
|
|
100
|
-
segments:
|
|
101
|
-
- 2
|
|
102
|
-
- 0
|
|
103
|
-
version: "2.0"
|
|
104
|
-
requirement: *id006
|
|
88
|
+
requirements:
|
|
89
|
+
- - ! '>='
|
|
90
|
+
- !ruby/object:Gem::Version
|
|
91
|
+
version: '0'
|
|
105
92
|
type: :development
|
|
106
93
|
prerelease: false
|
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
95
|
+
none: false
|
|
96
|
+
requirements:
|
|
97
|
+
- - ! '>='
|
|
98
|
+
- !ruby/object:Gem::Version
|
|
99
|
+
version: '0'
|
|
100
|
+
- !ruby/object:Gem::Dependency
|
|
107
101
|
name: rspec
|
|
108
|
-
|
|
109
|
-
version_requirements: &id007 !ruby/object:Gem::Requirement
|
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
|
110
103
|
none: false
|
|
111
|
-
requirements:
|
|
112
|
-
- -
|
|
113
|
-
- !ruby/object:Gem::Version
|
|
114
|
-
|
|
115
|
-
segments:
|
|
116
|
-
- 0
|
|
117
|
-
version: "0"
|
|
118
|
-
requirement: *id007
|
|
104
|
+
requirements:
|
|
105
|
+
- - ~>
|
|
106
|
+
- !ruby/object:Gem::Version
|
|
107
|
+
version: '2.0'
|
|
119
108
|
type: :development
|
|
120
109
|
prerelease: false
|
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
111
|
+
none: false
|
|
112
|
+
requirements:
|
|
113
|
+
- - ~>
|
|
114
|
+
- !ruby/object:Gem::Version
|
|
115
|
+
version: '2.0'
|
|
116
|
+
- !ruby/object:Gem::Dependency
|
|
121
117
|
name: bundler
|
|
122
|
-
|
|
123
|
-
version_requirements: &id008 !ruby/object:Gem::Requirement
|
|
118
|
+
requirement: !ruby/object:Gem::Requirement
|
|
124
119
|
none: false
|
|
125
|
-
requirements:
|
|
126
|
-
- -
|
|
127
|
-
- !ruby/object:Gem::Version
|
|
128
|
-
|
|
129
|
-
segments:
|
|
130
|
-
- 0
|
|
131
|
-
version: "0"
|
|
132
|
-
requirement: *id008
|
|
120
|
+
requirements:
|
|
121
|
+
- - ! '>='
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '0'
|
|
133
124
|
type: :development
|
|
134
125
|
prerelease: false
|
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
+
none: false
|
|
128
|
+
requirements:
|
|
129
|
+
- - ! '>='
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
- !ruby/object:Gem::Dependency
|
|
135
133
|
name: jeweler
|
|
136
|
-
|
|
137
|
-
version_requirements: &id009 !ruby/object:Gem::Requirement
|
|
134
|
+
requirement: !ruby/object:Gem::Requirement
|
|
138
135
|
none: false
|
|
139
|
-
requirements:
|
|
140
|
-
- -
|
|
141
|
-
- !ruby/object:Gem::Version
|
|
142
|
-
|
|
143
|
-
segments:
|
|
144
|
-
- 0
|
|
145
|
-
version: "0"
|
|
146
|
-
requirement: *id009
|
|
136
|
+
requirements:
|
|
137
|
+
- - ! '>='
|
|
138
|
+
- !ruby/object:Gem::Version
|
|
139
|
+
version: '0'
|
|
147
140
|
type: :development
|
|
148
141
|
prerelease: false
|
|
142
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
143
|
+
none: false
|
|
144
|
+
requirements:
|
|
145
|
+
- - ! '>='
|
|
146
|
+
- !ruby/object:Gem::Version
|
|
147
|
+
version: '0'
|
|
148
|
+
- !ruby/object:Gem::Dependency
|
|
149
149
|
name: rcov
|
|
150
|
-
|
|
151
|
-
version_requirements: &id010 !ruby/object:Gem::Requirement
|
|
150
|
+
requirement: !ruby/object:Gem::Requirement
|
|
152
151
|
none: false
|
|
153
|
-
requirements:
|
|
154
|
-
- -
|
|
155
|
-
- !ruby/object:Gem::Version
|
|
156
|
-
|
|
157
|
-
segments:
|
|
158
|
-
- 0
|
|
159
|
-
version: "0"
|
|
160
|
-
requirement: *id010
|
|
152
|
+
requirements:
|
|
153
|
+
- - ! '>='
|
|
154
|
+
- !ruby/object:Gem::Version
|
|
155
|
+
version: '0'
|
|
161
156
|
type: :development
|
|
162
157
|
prerelease: false
|
|
158
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
159
|
+
none: false
|
|
160
|
+
requirements:
|
|
161
|
+
- - ! '>='
|
|
162
|
+
- !ruby/object:Gem::Version
|
|
163
|
+
version: '0'
|
|
164
|
+
- !ruby/object:Gem::Dependency
|
|
163
165
|
name: simplecov
|
|
164
|
-
|
|
165
|
-
version_requirements: &id011 !ruby/object:Gem::Requirement
|
|
166
|
+
requirement: !ruby/object:Gem::Requirement
|
|
166
167
|
none: false
|
|
167
|
-
requirements:
|
|
168
|
-
- -
|
|
169
|
-
- !ruby/object:Gem::Version
|
|
170
|
-
|
|
171
|
-
segments:
|
|
172
|
-
- 0
|
|
173
|
-
version: "0"
|
|
174
|
-
requirement: *id011
|
|
168
|
+
requirements:
|
|
169
|
+
- - ! '>='
|
|
170
|
+
- !ruby/object:Gem::Version
|
|
171
|
+
version: '0'
|
|
175
172
|
type: :development
|
|
176
173
|
prerelease: false
|
|
174
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
175
|
+
none: false
|
|
176
|
+
requirements:
|
|
177
|
+
- - ! '>='
|
|
178
|
+
- !ruby/object:Gem::Version
|
|
179
|
+
version: '0'
|
|
180
|
+
- !ruby/object:Gem::Dependency
|
|
177
181
|
name: flog
|
|
178
|
-
|
|
179
|
-
version_requirements: &id012 !ruby/object:Gem::Requirement
|
|
182
|
+
requirement: !ruby/object:Gem::Requirement
|
|
180
183
|
none: false
|
|
181
|
-
requirements:
|
|
182
|
-
- -
|
|
183
|
-
- !ruby/object:Gem::Version
|
|
184
|
-
|
|
185
|
-
segments:
|
|
186
|
-
- 0
|
|
187
|
-
version: "0"
|
|
188
|
-
requirement: *id012
|
|
184
|
+
requirements:
|
|
185
|
+
- - ! '>='
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: '0'
|
|
189
188
|
type: :development
|
|
190
189
|
prerelease: false
|
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
+
none: false
|
|
192
|
+
requirements:
|
|
193
|
+
- - ! '>='
|
|
194
|
+
- !ruby/object:Gem::Version
|
|
195
|
+
version: '0'
|
|
196
|
+
- !ruby/object:Gem::Dependency
|
|
191
197
|
name: ZenTest
|
|
192
|
-
|
|
193
|
-
version_requirements: &id013 !ruby/object:Gem::Requirement
|
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
|
194
199
|
none: false
|
|
195
|
-
requirements:
|
|
196
|
-
- -
|
|
197
|
-
- !ruby/object:Gem::Version
|
|
198
|
-
|
|
199
|
-
segments:
|
|
200
|
-
- 0
|
|
201
|
-
version: "0"
|
|
202
|
-
requirement: *id013
|
|
200
|
+
requirements:
|
|
201
|
+
- - ! '>='
|
|
202
|
+
- !ruby/object:Gem::Version
|
|
203
|
+
version: '0'
|
|
203
204
|
type: :development
|
|
204
205
|
prerelease: false
|
|
206
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
207
|
+
none: false
|
|
208
|
+
requirements:
|
|
209
|
+
- - ! '>='
|
|
210
|
+
- !ruby/object:Gem::Version
|
|
211
|
+
version: '0'
|
|
212
|
+
- !ruby/object:Gem::Dependency
|
|
205
213
|
name: timecop
|
|
214
|
+
requirement: !ruby/object:Gem::Requirement
|
|
215
|
+
none: false
|
|
216
|
+
requirements:
|
|
217
|
+
- - ! '>='
|
|
218
|
+
- !ruby/object:Gem::Version
|
|
219
|
+
version: '0'
|
|
220
|
+
type: :development
|
|
221
|
+
prerelease: false
|
|
222
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
223
|
+
none: false
|
|
224
|
+
requirements:
|
|
225
|
+
- - ! '>='
|
|
226
|
+
- !ruby/object:Gem::Version
|
|
227
|
+
version: '0'
|
|
206
228
|
description: Simple Data Warehouse toolkit for ruby
|
|
207
229
|
email: roland.swingler@gmail.com
|
|
208
230
|
executables: []
|
|
209
|
-
|
|
210
231
|
extensions: []
|
|
211
|
-
|
|
212
|
-
extra_rdoc_files:
|
|
232
|
+
extra_rdoc_files:
|
|
213
233
|
- LICENSE
|
|
214
234
|
- README
|
|
215
|
-
files:
|
|
235
|
+
files:
|
|
216
236
|
- .document
|
|
217
237
|
- .rspec
|
|
218
238
|
- Gemfile
|
|
@@ -276,37 +296,31 @@ files:
|
|
|
276
296
|
- spec/support/shared_examples/schema_visitor.rb
|
|
277
297
|
- tasks/stats.rake
|
|
278
298
|
homepage: http://github.com/notonthehighstreet/chicago
|
|
279
|
-
licenses:
|
|
299
|
+
licenses:
|
|
280
300
|
- MIT
|
|
281
301
|
post_install_message:
|
|
282
302
|
rdoc_options: []
|
|
283
|
-
|
|
284
|
-
require_paths:
|
|
303
|
+
require_paths:
|
|
285
304
|
- lib
|
|
286
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
305
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
287
306
|
none: false
|
|
288
|
-
requirements:
|
|
289
|
-
- -
|
|
290
|
-
- !ruby/object:Gem::Version
|
|
291
|
-
|
|
292
|
-
segments:
|
|
307
|
+
requirements:
|
|
308
|
+
- - ! '>='
|
|
309
|
+
- !ruby/object:Gem::Version
|
|
310
|
+
version: '0'
|
|
311
|
+
segments:
|
|
293
312
|
- 0
|
|
294
|
-
|
|
295
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
313
|
+
hash: -2482122801910444787
|
|
314
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
296
315
|
none: false
|
|
297
|
-
requirements:
|
|
298
|
-
- -
|
|
299
|
-
- !ruby/object:Gem::Version
|
|
300
|
-
|
|
301
|
-
segments:
|
|
302
|
-
- 0
|
|
303
|
-
version: "0"
|
|
316
|
+
requirements:
|
|
317
|
+
- - ! '>='
|
|
318
|
+
- !ruby/object:Gem::Version
|
|
319
|
+
version: '0'
|
|
304
320
|
requirements: []
|
|
305
|
-
|
|
306
321
|
rubyforge_project:
|
|
307
|
-
rubygems_version: 1.8.
|
|
322
|
+
rubygems_version: 1.8.28
|
|
308
323
|
signing_key:
|
|
309
324
|
specification_version: 3
|
|
310
325
|
summary: Ruby Data Warehousing
|
|
311
326
|
test_files: []
|
|
312
|
-
|