squealer 2.1.1 → 2.2.0
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/.rvmrc +5 -5
- data/LICENSE +20 -0
- data/README.md +36 -12
- data/Rakefile +10 -1
- data/VERSION +1 -1
- data/bin/skewer +5 -9
- data/lib/example_squeal.rb +10 -3
- data/lib/squealer/database.rb +22 -4
- data/lib/squealer/hash.rb +1 -0
- data/lib/squealer/object.rb +2 -2
- data/lib/squealer/target.rb +32 -33
- data/lib/squealer.rb +0 -1
- data/spec/integration/export_a_record_spec.rb +148 -0
- data/spec/spec_helper.rb +34 -54
- data/spec/spec_helper_dbms_mysql.rb +56 -0
- data/spec/spec_helper_dbms_postgres.rb +55 -0
- data/spec/squealer/database_spec.rb +41 -11
- data/spec/squealer/object_spec.rb +4 -4
- data/spec/squealer/target_spec.rb +77 -108
- data/squealer.gemspec +31 -12
- metadata +109 -25
- data/lib/.example_squeal.rb.swp +0 -0
- data/lib/squealer/time.rb +0 -5
- data/spec/squealer/time_spec.rb +0 -10
@@ -4,23 +4,28 @@ describe Squealer::Target do
|
|
4
4
|
let(:table_name) { :test_table }
|
5
5
|
let(:test_table) { {'_id' => 0} }
|
6
6
|
|
7
|
-
let(:
|
7
|
+
let(:upsertable?) { Squealer::Database.instance.upsertable? }
|
8
8
|
|
9
9
|
after(:each) { Squealer::Target::Queue.instance.clear }
|
10
10
|
|
11
|
-
|
12
11
|
context "targeting" do
|
13
12
|
describe "initialize" do
|
14
|
-
let(:faqs) { [{'_id' => 123}] }
|
13
|
+
let(:faqs) { [{'_id' => '123'}] }
|
14
|
+
let(:naqs) { [{:_id => 'abc'}] }
|
15
15
|
|
16
16
|
context "without a target row id" do
|
17
17
|
context "with the inferred variable in scope" do
|
18
18
|
it "infers the value from the _id field in the hashmap referenced by the variable" do
|
19
|
-
mock_mysql
|
20
|
-
|
21
19
|
faqs.each do |faq|
|
22
|
-
Squealer::
|
23
|
-
target.
|
20
|
+
Squealer::TestTarget.new(nil, :faq) do |target|
|
21
|
+
target.instance_variable_get('@row_id').should == faq['_id']
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
it "infers the value from the :_id field in the hashmap referenced by the variable" do
|
26
|
+
naqs.each do |naq|
|
27
|
+
Squealer::TestTarget.new(nil, :naq) do |target|
|
28
|
+
target.instance_variable_get('@row_id').should == naq[:_id]
|
24
29
|
end
|
25
30
|
end
|
26
31
|
end
|
@@ -29,7 +34,7 @@ describe Squealer::Target do
|
|
29
34
|
it "throws an argument error" do
|
30
35
|
hash_with_no_id = {}
|
31
36
|
lambda do
|
32
|
-
Squealer::
|
37
|
+
Squealer::TestTarget.new(nil, :hash_with_no_id) {}
|
33
38
|
end.should raise_error(ArgumentError)
|
34
39
|
end
|
35
40
|
end
|
@@ -38,7 +43,7 @@ describe Squealer::Target do
|
|
38
43
|
it "throws an argument error" do
|
39
44
|
not_a_hash = nil
|
40
45
|
lambda do
|
41
|
-
Squealer::
|
46
|
+
Squealer::TestTarget.new(nil, :not_a_hash) {}
|
42
47
|
end.should raise_error(ArgumentError)
|
43
48
|
end
|
44
49
|
end
|
@@ -47,36 +52,23 @@ describe Squealer::Target do
|
|
47
52
|
context "without the inferred variable in scope" do
|
48
53
|
it "throws a name error" do
|
49
54
|
lambda do
|
50
|
-
Squealer::
|
55
|
+
Squealer::TestTarget.new(nil, :missing_variable) {}
|
51
56
|
end.should raise_error(NameError)
|
52
57
|
end
|
53
58
|
end
|
54
59
|
end
|
55
|
-
|
56
|
-
context "with a target row id" do
|
57
|
-
it "uses the passed value" do
|
58
|
-
mock_mysql
|
59
|
-
|
60
|
-
faqs.each do |faq|
|
61
|
-
Squealer::Target.new(nil, :faq, 1) do |target|
|
62
|
-
target.send(:instance_variable_get, '@row_id').should == 1
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
60
|
end
|
68
61
|
end
|
69
62
|
|
70
63
|
|
71
64
|
context "nesting" do
|
72
65
|
it "pushes itself onto the targets stack when starting" do
|
73
|
-
mock_mysql
|
74
66
|
@target1 = @target2 = nil
|
75
67
|
|
76
|
-
target1 = Squealer::
|
68
|
+
target1 = Squealer::TestTarget.new(nil, table_name) do
|
77
69
|
@target1 = Squealer::Target.current
|
78
70
|
test_table_2 = test_table
|
79
|
-
Squealer::
|
71
|
+
Squealer::TestTarget.new(nil, "#{table_name}_2") do
|
80
72
|
@target2 = Squealer::Target.current
|
81
73
|
@target2.should_not == @target1
|
82
74
|
end
|
@@ -85,9 +77,7 @@ describe Squealer::Target do
|
|
85
77
|
end
|
86
78
|
|
87
79
|
it "pops itself off the targets stack when finished" do
|
88
|
-
|
89
|
-
|
90
|
-
Squealer::Target.new(export_dbc, table_name) { nil }
|
80
|
+
Squealer::TestTarget.new(nil, table_name) { nil }
|
91
81
|
Squealer::Target.current.should be_nil
|
92
82
|
end
|
93
83
|
end
|
@@ -95,21 +85,17 @@ describe Squealer::Target do
|
|
95
85
|
|
96
86
|
context "yielding" do
|
97
87
|
it "yields" do
|
98
|
-
mock_mysql
|
99
|
-
|
100
88
|
block_done = false
|
101
|
-
target = Squealer::
|
89
|
+
target = Squealer::TestTarget.new(nil, table_name) { block_done = true }
|
102
90
|
block_done.should be_true
|
103
91
|
end
|
104
92
|
|
105
93
|
it "yields inner blocks before executing its own SQL" do
|
106
|
-
mock_mysql
|
107
|
-
|
108
94
|
blocks_done = []
|
109
|
-
Squealer::
|
95
|
+
Squealer::TestTarget.new(nil, table_name) do |target_1|
|
110
96
|
blocks_done << target_1
|
111
97
|
blocks_done.first.sql.should be_empty
|
112
|
-
Squealer::
|
98
|
+
Squealer::TestTarget.new(nil, table_name) do |target_2|
|
113
99
|
blocks_done << target_2
|
114
100
|
blocks_done.first.sql.should be_empty
|
115
101
|
blocks_done.last.sql.should be_empty
|
@@ -132,10 +118,8 @@ describe Squealer::Target do
|
|
132
118
|
|
133
119
|
context "with a block" do
|
134
120
|
it "uses the value from the block" do
|
135
|
-
mock_mysql
|
136
|
-
|
137
121
|
faqs.each do |faq|
|
138
|
-
Squealer::
|
122
|
+
Squealer::TestTarget.new(nil, :faq) do
|
139
123
|
assign(col1) { value1 }
|
140
124
|
Squealer::Target.current.instance_variable_get('@column_names').should == [col1]
|
141
125
|
Squealer::Target.current.instance_variable_get('@column_values').should == [value1]
|
@@ -143,10 +127,8 @@ describe Squealer::Target do
|
|
143
127
|
end
|
144
128
|
end
|
145
129
|
it "uses the value from the block even if it is nil" do
|
146
|
-
mock_mysql
|
147
|
-
|
148
130
|
faqs.each do |faq|
|
149
|
-
Squealer::
|
131
|
+
Squealer::TestTarget.new(nil, :faq) do
|
150
132
|
assign(col1) { nil }
|
151
133
|
Squealer::Target.current.instance_variable_get('@column_names').should == [col1]
|
152
134
|
Squealer::Target.current.instance_variable_get('@column_values').should == [nil]
|
@@ -158,10 +140,8 @@ describe Squealer::Target do
|
|
158
140
|
context "without a block" do
|
159
141
|
context "with the inferred variable in scope" do
|
160
142
|
it "infers source from target name" do
|
161
|
-
mock_mysql
|
162
|
-
|
163
143
|
faqs.each do |faq|
|
164
|
-
Squealer::
|
144
|
+
Squealer::TestTarget.new(nil, :faq) do
|
165
145
|
assign(col1)
|
166
146
|
Squealer::Target.current.instance_variable_get('@column_names').should == [col1]
|
167
147
|
Squealer::Target.current.instance_variable_get('@column_values').should == [value1]
|
@@ -169,11 +149,9 @@ describe Squealer::Target do
|
|
169
149
|
end
|
170
150
|
end
|
171
151
|
it "infers related source from target name" do
|
172
|
-
mock_mysql
|
173
|
-
|
174
152
|
askers.each do |asker|
|
175
153
|
faqs.each do |faq|
|
176
|
-
Squealer::
|
154
|
+
Squealer::TestTarget.new(nil, :faq) do
|
177
155
|
assign(:asker_id)
|
178
156
|
Squealer::Target.current.instance_variable_get('@column_names').should == [:asker_id]
|
179
157
|
Squealer::Target.current.instance_variable_get('@column_values').should == [2001]
|
@@ -186,10 +164,8 @@ describe Squealer::Target do
|
|
186
164
|
|
187
165
|
context "with an empty block" do
|
188
166
|
it "assumes nil" do
|
189
|
-
mock_mysql
|
190
|
-
|
191
167
|
faqs.each do |faq|
|
192
|
-
Squealer::
|
168
|
+
Squealer::TestTarget.new(nil, :faq) do
|
193
169
|
assign(col1) {}
|
194
170
|
Squealer::Target.current.instance_variable_get('@column_names').should == [col1]
|
195
171
|
Squealer::Target.current.instance_variable_get('@column_values').should == [nil]
|
@@ -202,113 +178,106 @@ describe Squealer::Target do
|
|
202
178
|
|
203
179
|
|
204
180
|
context "exporting" do
|
205
|
-
before(:each) { mock_mysql }
|
206
|
-
|
207
181
|
it "sends the sql to the export database" do
|
208
|
-
Squealer::
|
182
|
+
Squealer::TestTarget.new(nil, table_name) { nil }
|
209
183
|
end
|
210
184
|
|
211
185
|
describe "#target" do
|
212
186
|
describe "#typecast_values" do
|
213
187
|
subject { target.send(:typecast_values) }
|
214
|
-
let(:target) { Squealer::
|
188
|
+
let(:target) { Squealer::TestTarget.new(nil, table_name) {} }
|
215
189
|
|
216
190
|
it "casts array to comma-separated string" do
|
217
191
|
target.assign(:colA) { ['1', '2'] }
|
218
192
|
subject.should == ['1,2']
|
219
193
|
end
|
220
|
-
|
221
|
-
it "casts false to 0 (for mysql TINYINT)" do
|
222
|
-
target.assign(:colA) { false }
|
223
|
-
subject.should == [0]
|
224
|
-
end
|
225
|
-
|
226
|
-
it "casts true to 1 (for mysql TINYINT)" do
|
227
|
-
target.assign(:colA) { true }
|
228
|
-
subject.should == [1]
|
229
|
-
end
|
230
|
-
|
231
|
-
it "casts symbol to string" do
|
232
|
-
target.assign(:colA) { :open }
|
233
|
-
subject.should == ['open']
|
234
|
-
end
|
235
194
|
end
|
236
195
|
|
237
196
|
context "generates SQL command strings" do
|
238
|
-
let(:target) { Squealer::
|
197
|
+
let(:target) { Squealer::TestTarget.new(nil, table_name) { nil } }
|
239
198
|
|
240
|
-
|
241
|
-
|
242
|
-
|
199
|
+
context "insert" do
|
200
|
+
it "targets the table" do
|
201
|
+
target.sql.should =~ /^INSERT INTO "#{table_name}" / if upsertable?
|
202
|
+
target.sql.should =~ /; INSERT INTO "#{table_name}" / unless upsertable?
|
203
|
+
end
|
243
204
|
|
244
|
-
|
245
|
-
|
246
|
-
|
205
|
+
it "includes the primary key name in the INSERT" do
|
206
|
+
target.sql.should =~ / \(id\) VALUES/
|
207
|
+
end
|
247
208
|
|
248
|
-
|
249
|
-
|
209
|
+
it "includes the primary key value in the INSERT" do
|
210
|
+
target.sql.should =~ / VALUES \('0'\)/
|
211
|
+
end
|
250
212
|
end
|
251
213
|
|
252
|
-
|
253
|
-
|
254
|
-
|
214
|
+
context "upsert" do
|
215
|
+
before { Squealer::Database.instance.should_receive(:upsertable?).at_least(:once).and_return(true) }
|
216
|
+
it "uses an INSERT ... ON DUPLICATE KEY UPDATE statement" do
|
217
|
+
target.sql.should =~ /^INSERT INTO .* ON DUPLICATE KEY UPDATE /
|
218
|
+
end
|
255
219
|
end
|
256
|
-
|
257
220
|
end
|
258
221
|
|
259
222
|
context "with 2 columns" do
|
260
223
|
let(:value_1) { 42 }
|
261
224
|
let(:target) do
|
262
|
-
Squealer::
|
225
|
+
Squealer::TestTarget.new(nil, table_name) { Squealer::Target.current.assign(:colA) { value_1 } }
|
263
226
|
end
|
264
227
|
|
265
|
-
|
266
|
-
|
267
|
-
|
228
|
+
context "insert" do
|
229
|
+
it "includes the column name in the INSERT" do
|
230
|
+
target.sql.should =~ /\(id,"colA"\) VALUES/
|
231
|
+
end
|
268
232
|
|
269
|
-
|
270
|
-
|
271
|
-
|
233
|
+
it "includes the column value in the INSERT" do
|
234
|
+
target.sql.should =~ /VALUES \('0',\?\)/
|
235
|
+
end
|
272
236
|
end
|
273
237
|
|
274
|
-
|
275
|
-
|
276
|
-
|
238
|
+
context "upsert" do
|
239
|
+
before { Squealer::Database.instance.should_receive(:upsertable?).at_least(:once).and_return(true) }
|
240
|
+
it "includes the column name and value in the UPDATE" do
|
241
|
+
target.sql.should =~ /UPDATE "colA"=\?/
|
242
|
+
end
|
277
243
|
end
|
278
|
-
|
279
244
|
end
|
280
245
|
|
281
246
|
context "with 3 columns" do
|
282
247
|
let(:value_1) { 42 }
|
283
248
|
let(:value_2) { 'foobar' }
|
284
249
|
let(:target) do
|
285
|
-
Squealer::
|
250
|
+
Squealer::TestTarget.new(nil, table_name) do |target|
|
286
251
|
Squealer::Target.current.assign(:colA) { value_1 }
|
287
252
|
Squealer::Target.current.assign(:colB) { value_2 }
|
288
253
|
end
|
289
254
|
end
|
290
255
|
|
291
|
-
|
292
|
-
|
293
|
-
|
256
|
+
context "insert" do
|
257
|
+
it "includes the column names in the INSERT" do
|
258
|
+
target.sql.should =~ /\(id,"colA","colB"\) VALUES/
|
259
|
+
end
|
294
260
|
|
295
|
-
|
296
|
-
|
297
|
-
|
261
|
+
it "includes the column values in the INSERT" do
|
262
|
+
target.sql.should =~ /VALUES \('0',\?,\?\)/
|
263
|
+
end
|
298
264
|
end
|
299
265
|
|
300
|
-
|
301
|
-
|
302
|
-
|
266
|
+
context "upsert" do
|
267
|
+
before { Squealer::Database.instance.should_receive(:upsertable?).at_least(:once).and_return(true) }
|
268
|
+
it "includes the column names and values in the UPDATE" do
|
269
|
+
target.sql.should =~ /UPDATE "colA"=\?,"colB"=\?/
|
270
|
+
end
|
303
271
|
end
|
304
272
|
end
|
305
273
|
end
|
306
274
|
end
|
307
275
|
end
|
308
276
|
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
277
|
+
# Yes, David Chelimsky, an any_instance stub would be handy right about now :-P
|
278
|
+
module Squealer
|
279
|
+
class TestTarget < Target
|
280
|
+
def execute_sql(sql, values)
|
281
|
+
end
|
282
|
+
end
|
314
283
|
end
|
data/squealer.gemspec
CHANGED
@@ -5,27 +5,28 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{squealer}
|
8
|
-
s.version = "2.
|
8
|
+
s.version = "2.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Josh Graham", "Durran Jordan", "Matt Yoho", "Bernerd Schaefer"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-06-23}
|
13
13
|
s.default_executable = %q{skewer}
|
14
14
|
s.description = %q{Exports mongodb to mysql. More later.}
|
15
15
|
s.email = %q{joshua.graham@grahamis.com}
|
16
16
|
s.executables = ["skewer"]
|
17
17
|
s.extra_rdoc_files = [
|
18
|
-
"
|
18
|
+
"LICENSE",
|
19
|
+
"README.md"
|
19
20
|
]
|
20
21
|
s.files = [
|
21
22
|
".gitignore",
|
22
23
|
".rvmrc",
|
23
24
|
".watchr",
|
25
|
+
"LICENSE",
|
24
26
|
"README.md",
|
25
27
|
"Rakefile",
|
26
28
|
"VERSION",
|
27
29
|
"bin/skewer",
|
28
|
-
"lib/.example_squeal.rb.swp",
|
29
30
|
"lib/example_squeal.rb",
|
30
31
|
"lib/squealer.rb",
|
31
32
|
"lib/squealer/database.rb",
|
@@ -33,16 +34,17 @@ Gem::Specification.new do |s|
|
|
33
34
|
"lib/squealer/object.rb",
|
34
35
|
"lib/squealer/progress_bar.rb",
|
35
36
|
"lib/squealer/target.rb",
|
36
|
-
"lib/squealer/time.rb",
|
37
37
|
"lib/tasks/jeweler.rake",
|
38
|
+
"spec/integration/export_a_record_spec.rb",
|
38
39
|
"spec/spec.opts",
|
39
40
|
"spec/spec_helper.rb",
|
41
|
+
"spec/spec_helper_dbms_mysql.rb",
|
42
|
+
"spec/spec_helper_dbms_postgres.rb",
|
40
43
|
"spec/squealer/database_spec.rb",
|
41
44
|
"spec/squealer/hash_spec.rb",
|
42
45
|
"spec/squealer/object_spec.rb",
|
43
46
|
"spec/squealer/progress_bar_spec.rb",
|
44
47
|
"spec/squealer/target_spec.rb",
|
45
|
-
"spec/squealer/time_spec.rb",
|
46
48
|
"squealer.gemspec"
|
47
49
|
]
|
48
50
|
s.homepage = %q{http://github.com/delitescere/squealer/}
|
@@ -51,13 +53,15 @@ Gem::Specification.new do |s|
|
|
51
53
|
s.rubygems_version = %q{1.3.7}
|
52
54
|
s.summary = %q{Document-oriented to Relational database exporter}
|
53
55
|
s.test_files = [
|
54
|
-
"spec/
|
56
|
+
"spec/integration/export_a_record_spec.rb",
|
57
|
+
"spec/spec_helper.rb",
|
58
|
+
"spec/spec_helper_dbms_mysql.rb",
|
59
|
+
"spec/spec_helper_dbms_postgres.rb",
|
55
60
|
"spec/squealer/database_spec.rb",
|
56
61
|
"spec/squealer/hash_spec.rb",
|
57
62
|
"spec/squealer/object_spec.rb",
|
58
63
|
"spec/squealer/progress_bar_spec.rb",
|
59
|
-
"spec/squealer/target_spec.rb"
|
60
|
-
"spec/squealer/time_spec.rb"
|
64
|
+
"spec/squealer/target_spec.rb"
|
61
65
|
]
|
62
66
|
|
63
67
|
if s.respond_to? :specification_version then
|
@@ -65,18 +69,33 @@ Gem::Specification.new do |s|
|
|
65
69
|
s.specification_version = 3
|
66
70
|
|
67
71
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
68
|
-
s.add_runtime_dependency(%q<mysql>, [">= 2.8.1"])
|
69
72
|
s.add_runtime_dependency(%q<mongo>, [">= 0.18.3"])
|
70
73
|
s.add_runtime_dependency(%q<bson_ext>, [">= 1.0.1"])
|
74
|
+
s.add_runtime_dependency(%q<data_objects>, [">= 0.10.2"])
|
75
|
+
s.add_runtime_dependency(%q<mysql>, [">= 2.8.1"])
|
76
|
+
s.add_runtime_dependency(%q<do_mysql>, [">= 0.10.2"])
|
77
|
+
s.add_runtime_dependency(%q<pg>, [">= 0.9.0"])
|
78
|
+
s.add_runtime_dependency(%q<do_postgres>, [">= 0.10.2"])
|
79
|
+
s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
|
71
80
|
else
|
72
|
-
s.add_dependency(%q<mysql>, [">= 2.8.1"])
|
73
81
|
s.add_dependency(%q<mongo>, [">= 0.18.3"])
|
74
82
|
s.add_dependency(%q<bson_ext>, [">= 1.0.1"])
|
83
|
+
s.add_dependency(%q<data_objects>, [">= 0.10.2"])
|
84
|
+
s.add_dependency(%q<mysql>, [">= 2.8.1"])
|
85
|
+
s.add_dependency(%q<do_mysql>, [">= 0.10.2"])
|
86
|
+
s.add_dependency(%q<pg>, [">= 0.9.0"])
|
87
|
+
s.add_dependency(%q<do_postgres>, [">= 0.10.2"])
|
88
|
+
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
75
89
|
end
|
76
90
|
else
|
77
|
-
s.add_dependency(%q<mysql>, [">= 2.8.1"])
|
78
91
|
s.add_dependency(%q<mongo>, [">= 0.18.3"])
|
79
92
|
s.add_dependency(%q<bson_ext>, [">= 1.0.1"])
|
93
|
+
s.add_dependency(%q<data_objects>, [">= 0.10.2"])
|
94
|
+
s.add_dependency(%q<mysql>, [">= 2.8.1"])
|
95
|
+
s.add_dependency(%q<do_mysql>, [">= 0.10.2"])
|
96
|
+
s.add_dependency(%q<pg>, [">= 0.9.0"])
|
97
|
+
s.add_dependency(%q<do_postgres>, [">= 0.10.2"])
|
98
|
+
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
80
99
|
end
|
81
100
|
end
|
82
101
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: squealer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 2.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 2.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Josh Graham
|
@@ -18,57 +18,137 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2010-
|
21
|
+
date: 2010-06-23 00:00:00 -05:00
|
22
22
|
default_executable: skewer
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
|
-
name:
|
25
|
+
name: mongo
|
26
26
|
prerelease: false
|
27
27
|
requirement: &id001 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
hash:
|
32
|
+
hash: 81
|
33
33
|
segments:
|
34
|
-
-
|
35
|
-
-
|
36
|
-
-
|
37
|
-
version:
|
34
|
+
- 0
|
35
|
+
- 18
|
36
|
+
- 3
|
37
|
+
version: 0.18.3
|
38
38
|
type: :runtime
|
39
39
|
version_requirements: *id001
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
|
-
name:
|
41
|
+
name: bson_ext
|
42
42
|
prerelease: false
|
43
43
|
requirement: &id002 !ruby/object:Gem::Requirement
|
44
44
|
none: false
|
45
45
|
requirements:
|
46
46
|
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
hash:
|
48
|
+
hash: 21
|
49
49
|
segments:
|
50
|
+
- 1
|
50
51
|
- 0
|
51
|
-
-
|
52
|
-
|
53
|
-
version: 0.18.3
|
52
|
+
- 1
|
53
|
+
version: 1.0.1
|
54
54
|
type: :runtime
|
55
55
|
version_requirements: *id002
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: data_objects
|
58
58
|
prerelease: false
|
59
59
|
requirement: &id003 !ruby/object:Gem::Requirement
|
60
60
|
none: false
|
61
61
|
requirements:
|
62
62
|
- - ">="
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
hash:
|
64
|
+
hash: 51
|
65
65
|
segments:
|
66
|
-
- 1
|
67
66
|
- 0
|
68
|
-
-
|
69
|
-
|
67
|
+
- 10
|
68
|
+
- 2
|
69
|
+
version: 0.10.2
|
70
70
|
type: :runtime
|
71
71
|
version_requirements: *id003
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
name: mysql
|
74
|
+
prerelease: false
|
75
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
hash: 45
|
81
|
+
segments:
|
82
|
+
- 2
|
83
|
+
- 8
|
84
|
+
- 1
|
85
|
+
version: 2.8.1
|
86
|
+
type: :runtime
|
87
|
+
version_requirements: *id004
|
88
|
+
- !ruby/object:Gem::Dependency
|
89
|
+
name: do_mysql
|
90
|
+
prerelease: false
|
91
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
hash: 51
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
- 10
|
100
|
+
- 2
|
101
|
+
version: 0.10.2
|
102
|
+
type: :runtime
|
103
|
+
version_requirements: *id005
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: pg
|
106
|
+
prerelease: false
|
107
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
hash: 59
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
- 9
|
116
|
+
- 0
|
117
|
+
version: 0.9.0
|
118
|
+
type: :runtime
|
119
|
+
version_requirements: *id006
|
120
|
+
- !ruby/object:Gem::Dependency
|
121
|
+
name: do_postgres
|
122
|
+
prerelease: false
|
123
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
hash: 51
|
129
|
+
segments:
|
130
|
+
- 0
|
131
|
+
- 10
|
132
|
+
- 2
|
133
|
+
version: 0.10.2
|
134
|
+
type: :runtime
|
135
|
+
version_requirements: *id007
|
136
|
+
- !ruby/object:Gem::Dependency
|
137
|
+
name: rspec
|
138
|
+
prerelease: false
|
139
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
hash: 27
|
145
|
+
segments:
|
146
|
+
- 1
|
147
|
+
- 3
|
148
|
+
- 0
|
149
|
+
version: 1.3.0
|
150
|
+
type: :development
|
151
|
+
version_requirements: *id008
|
72
152
|
description: Exports mongodb to mysql. More later.
|
73
153
|
email: joshua.graham@grahamis.com
|
74
154
|
executables:
|
@@ -76,16 +156,17 @@ executables:
|
|
76
156
|
extensions: []
|
77
157
|
|
78
158
|
extra_rdoc_files:
|
159
|
+
- LICENSE
|
79
160
|
- README.md
|
80
161
|
files:
|
81
162
|
- .gitignore
|
82
163
|
- .rvmrc
|
83
164
|
- .watchr
|
165
|
+
- LICENSE
|
84
166
|
- README.md
|
85
167
|
- Rakefile
|
86
168
|
- VERSION
|
87
169
|
- bin/skewer
|
88
|
-
- lib/.example_squeal.rb.swp
|
89
170
|
- lib/example_squeal.rb
|
90
171
|
- lib/squealer.rb
|
91
172
|
- lib/squealer/database.rb
|
@@ -93,16 +174,17 @@ files:
|
|
93
174
|
- lib/squealer/object.rb
|
94
175
|
- lib/squealer/progress_bar.rb
|
95
176
|
- lib/squealer/target.rb
|
96
|
-
- lib/squealer/time.rb
|
97
177
|
- lib/tasks/jeweler.rake
|
178
|
+
- spec/integration/export_a_record_spec.rb
|
98
179
|
- spec/spec.opts
|
99
180
|
- spec/spec_helper.rb
|
181
|
+
- spec/spec_helper_dbms_mysql.rb
|
182
|
+
- spec/spec_helper_dbms_postgres.rb
|
100
183
|
- spec/squealer/database_spec.rb
|
101
184
|
- spec/squealer/hash_spec.rb
|
102
185
|
- spec/squealer/object_spec.rb
|
103
186
|
- spec/squealer/progress_bar_spec.rb
|
104
187
|
- spec/squealer/target_spec.rb
|
105
|
-
- spec/squealer/time_spec.rb
|
106
188
|
- squealer.gemspec
|
107
189
|
has_rdoc: true
|
108
190
|
homepage: http://github.com/delitescere/squealer/
|
@@ -139,10 +221,12 @@ signing_key:
|
|
139
221
|
specification_version: 3
|
140
222
|
summary: Document-oriented to Relational database exporter
|
141
223
|
test_files:
|
224
|
+
- spec/integration/export_a_record_spec.rb
|
142
225
|
- spec/spec_helper.rb
|
226
|
+
- spec/spec_helper_dbms_mysql.rb
|
227
|
+
- spec/spec_helper_dbms_postgres.rb
|
143
228
|
- spec/squealer/database_spec.rb
|
144
229
|
- spec/squealer/hash_spec.rb
|
145
230
|
- spec/squealer/object_spec.rb
|
146
231
|
- spec/squealer/progress_bar_spec.rb
|
147
232
|
- spec/squealer/target_spec.rb
|
148
|
-
- spec/squealer/time_spec.rb
|
data/lib/.example_squeal.rb.swp
DELETED
Binary file
|