mongify 1.2.4 → 1.3.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.
@@ -54,13 +54,13 @@ describe Mongify::Translation::Sync do
54
54
 
55
55
  context "syncing actions" do
56
56
  before(:each) do
57
- @sql_connection = mock(:select_rows => [{'first_name'=> 'Timmy', 'last_name' => 'Zuza', 'preference_id' => 1}])
57
+ @sql_connection = double(:select_rows => [{'first_name'=> 'Timmy', 'last_name' => 'Zuza', 'preference_id' => 1}])
58
58
  @translation.stub(:sql_connection).and_return(@sql_connection)
59
59
 
60
- @no_sql_connection = mock()
60
+ @no_sql_connection = double()
61
61
  @translation.stub(:no_sql_connection).and_return(@no_sql_connection)
62
62
 
63
- @table = mock(:translate => {'first_name'=> 'Timmy', 'last_name' => 'Zuza', 'preference_id' => 1},
63
+ @table = double(:translate => {'first_name'=> 'Timmy', 'last_name' => 'Zuza', 'preference_id' => 1},
64
64
  :name => 'users',
65
65
  :embedded? => false,
66
66
  :sql_name => 'users')
@@ -72,7 +72,7 @@ describe Mongify::Translation::Sync do
72
72
  it "should create a table with index in the up dir" do
73
73
  migrator = Mongify::Translation::Sync::SyncHelperMigrator.new
74
74
  helper = Mongify::Translation::Sync::SYNC_HELPER_TABLE
75
- t = mock({:string => 1, :datetime => 1})
75
+ t = double({:string => 1, :datetime => 1})
76
76
  t.should_receive(:string).with(:table_name)
77
77
  t.should_receive(:datetime).with(:last_updated_at)
78
78
  migrator.stub(:create_table).and_yield(t)
@@ -89,12 +89,12 @@ describe Mongify::Translation::Sync do
89
89
  @query = "SELECT count(*) FROM #{@helper}"
90
90
  @sql_connection.stub(:execute).with(@query).and_return(5)
91
91
  @sql_connection.should_receive(:execute).with(@query)
92
- @translation.stub(:copy_tables).and_return([mock(:sql_name => 'table1')])
92
+ @translation.stub(:copy_tables).and_return([double(:sql_name => 'table1')])
93
93
  end
94
94
 
95
95
  it "should create sync helper table if it doesn't exist" do
96
96
  @sql_connection.stub(:execute).with(@query).and_raise
97
- migrator = mock(:up)
97
+ migrator = double(:up)
98
98
  Mongify::Translation::Sync::SyncHelperMigrator.stub(:new).and_return(migrator)
99
99
  migrator.should_receive(:up)
100
100
  @translation.stub(:copy_tables).and_return([])
@@ -119,7 +119,7 @@ describe Mongify::Translation::Sync do
119
119
 
120
120
  context "set_last_updated_at" do
121
121
  it "should update last_updated_at timestamp for each table that generated sync data" do
122
- @translation.stub(:copy_tables).and_return([mock(:sql_name => 'table1')])
122
+ @translation.stub(:copy_tables).and_return([double(:sql_name => 'table1')])
123
123
  @translation.max_updated_at = {'table1' => {'max_updated_at_id' => 1, 'key_column' => 'id'}}
124
124
  helper = Mongify::Translation::Sync::SYNC_HELPER_TABLE
125
125
  query = "UPDATE #{helper} SET last_updated_at = (SELECT updated_at FROM table1 WHERE id = '1') WHERE table_name = 'table1'"
@@ -128,7 +128,7 @@ describe Mongify::Translation::Sync do
128
128
  @translation.send(:set_last_updated_at)
129
129
  end
130
130
  it "should not update last_updated_at timestamp for each table that did not generate any sync data" do
131
- @translation.stub(:copy_tables).and_return([mock(:sql_name => 'table1')])
131
+ @translation.stub(:copy_tables).and_return([double(:sql_name => 'table1')])
132
132
  @translation.max_updated_at = {}
133
133
  @translation.send(:set_last_updated_at)
134
134
  @translation.max_updated_at = {'table1' => {'key_column' => 'id'}}
@@ -139,7 +139,7 @@ describe Mongify::Translation::Sync do
139
139
  context "sync_data" do
140
140
  it "should upsert rows that match the new/updated query, mark them as drafts and compute the max updated at" do
141
141
  helper = Mongify::Translation::Sync::SYNC_HELPER_TABLE
142
- t = mock(:sql_name => 'table1', :name => 'table1')
142
+ t = double(:sql_name => 'table1', :name => 'table1')
143
143
  @translation.stub(:copy_tables).and_return([t])
144
144
  t1, t2 = Time.new(1980).to_s, Time.new(2000).to_s
145
145
  rows = [{"id" => 1, "updated_at" => t1}, {"id" => 2, "updated_at" => t2}]
@@ -155,7 +155,7 @@ describe Mongify::Translation::Sync do
155
155
  @no_sql_connection.stub(:upsert).with('table1', {'pre_mongified_id' => 2, 'updated_at' => t2, draft => true}).and_return(true)
156
156
  @no_sql_connection.should_receive(:upsert).twice
157
157
 
158
- t.stub(:key_column).and_return(mock({name: 'id'}))
158
+ t.stub(:key_column).and_return(double({name: 'id'}))
159
159
 
160
160
  @translation.send(:sync_data)
161
161
 
@@ -166,10 +166,10 @@ describe Mongify::Translation::Sync do
166
166
 
167
167
  context "sync_update_reference_ids" do
168
168
  it "should delete the draft key" do
169
- t = mock(:name => 'table1')
169
+ t = double(:name => 'table1')
170
170
  @translation.stub(:copy_tables).and_return([t])
171
171
  query = {Mongify::Translation::Sync::DRAFT_KEY => true}
172
- row = mock
172
+ row = double
173
173
  row.stub(:[]).with("_id").and_return(1)
174
174
  @no_sql_connection.stub(:select_by_query).and_return([row])
175
175
  @no_sql_connection.should_receive(:select_by_query).with('table1', query)
@@ -19,7 +19,7 @@ describe Mongify::Translation do
19
19
  @connection.stub(:has_connection?).and_return(true)
20
20
  @connection.stub(:valid?).and_return(true)
21
21
  @connection.stub(:tables).and_return(['users'])
22
- col = mock(:name => 'first_name', :type => 'string', :default => nil)
22
+ col = double(:name => 'first_name', :type => 'string', :default => nil)
23
23
  @connection.stub(:columns_for).with('users').and_return([col])
24
24
  end
25
25
  it "should return a translation" do
@@ -50,10 +50,10 @@ describe Mongify::Translation do
50
50
 
51
51
  context "find" do
52
52
  before(:each) do
53
- @user_table = mock(:name => 'users')
54
- @translation.stub(:all_tables).and_return([mock(:name => 'comments'),
53
+ @user_table = double(:name => 'users')
54
+ @translation.stub(:all_tables).and_return([double(:name => 'comments'),
55
55
  @user_table,
56
- mock(:name => 'posts')])
56
+ double(:name => 'posts')])
57
57
  end
58
58
  it "should work" do
59
59
 
@@ -66,10 +66,10 @@ describe Mongify::Translation do
66
66
 
67
67
  context "tables reference" do
68
68
  before(:each) do
69
- @copy_table = mock(:name => 'users', :ignored? => false, :embedded? => false, :polymorphic? => false)
70
- @embed_table = mock(:name => 'comments', :ignored? => false, :embedded? => true, :polymorphic? => false)
71
- @ignored_table = mock(:name => 'apples', :ignored? => true, :embedded? => false, :polymorphic? => false)
72
- @polymorphic_table = mock(:name => 'comments', :ignored? => false, :embedded? => false, :polymorphic? => true)
69
+ @copy_table = double(:name => 'users', :ignored? => false, :embedded? => false, :polymorphic? => false)
70
+ @embed_table = double(:name => 'comments', :ignored? => false, :embedded? => true, :polymorphic? => false)
71
+ @ignored_table = double(:name => 'apples', :ignored? => true, :embedded? => false, :polymorphic? => false)
72
+ @polymorphic_table = double(:name => 'comments', :ignored? => false, :embedded? => false, :polymorphic? => true)
73
73
  @translation = Mongify::Translation.new()
74
74
  @all_tables = [@copy_table, @embed_table, @ignored_table, @polymorphic_table]
75
75
  @translation.stub(:all_tables).and_return(@all_tables)
@@ -40,17 +40,17 @@ describe Mongify::UI do
40
40
 
41
41
  it "should ask for yes/no and return true when yes" do
42
42
  @ui.should_receive(:request).with('foo? [yn] ').and_return('y')
43
- @ui.ask("foo?").should be_true
43
+ @ui.ask("foo?").should be_truthy
44
44
  end
45
45
 
46
46
  it "should ask for yes/no and return false when no" do
47
47
  @ui.stub(:request).and_return('n')
48
- @ui.ask("foo?").should be_false
48
+ @ui.ask("foo?").should be_falsey
49
49
  end
50
50
 
51
51
  it "should ask for yes/no and return false for any input" do
52
52
  @ui.stub(:request).and_return('aklhasdf')
53
- @ui.ask("foo?").should be_false
53
+ @ui.ask("foo?").should be_falsey
54
54
  end
55
55
 
56
56
  it "should add WARNING to a warn message" do
data/spec/spec_helper.rb CHANGED
@@ -12,6 +12,7 @@ rescue LoadError
12
12
  end
13
13
 
14
14
  require 'rspec/core'
15
+ require 'rspec/collection_matchers'
15
16
 
16
17
  Dir['./spec/support/**/*.rb'].map {|f| require f}
17
18
 
@@ -10,6 +10,15 @@ mysql:
10
10
  host: localhost
11
11
  port: 3306
12
12
 
13
+ postgresql:
14
+ adapter: postgresql
15
+ database: mongify_test
16
+ encoding: unicode
17
+ username: root
18
+ password: passw0rd
19
+ host: localhost
20
+ port: 5432
21
+
13
22
  mongo:
14
23
  adapter: mongo
15
24
  database: mongify_test
@@ -38,7 +38,7 @@ class DatabaseGenerator
38
38
  #SETUP TABLES
39
39
  conn.create_table(:users) do |t|
40
40
  t.string :first_name, :last_name
41
- t.timestamps
41
+ t.timestamps null: false
42
42
  end
43
43
 
44
44
  conn.create_table(:posts) do |t|
@@ -46,21 +46,21 @@ class DatabaseGenerator
46
46
  t.integer :owner_id
47
47
  t.text :body
48
48
  t.datetime :published_at
49
- t.timestamps
49
+ t.timestamps null: false
50
50
  end
51
51
 
52
52
  conn.create_table(:comments) do |t|
53
53
  t.text :body
54
54
  t.integer :post_id
55
55
  t.integer :user_id
56
- t.timestamps
56
+ t.timestamps null: false
57
57
  end
58
58
 
59
59
  conn.create_table(:preferences, :id => false) do |t|
60
60
  t.string :id
61
61
  t.integer :user_id
62
62
  t.boolean :notify_by_email
63
- t.timestamps
63
+ t.timestamps null: false
64
64
  end
65
65
 
66
66
  conn.create_table(:notes) do |t|
@@ -68,19 +68,19 @@ class DatabaseGenerator
68
68
  t.integer :notable_id
69
69
  t.string :notable_type
70
70
  t.text :body
71
- t.timestamps
71
+ t.timestamps null: false
72
72
  end
73
73
 
74
74
  conn.create_table(:teams) do |t|
75
75
  t.string :name
76
76
  t.string :phone
77
- t.timestamps
77
+ t.timestamps null: false
78
78
  end
79
79
 
80
80
  conn.create_table(:coaches) do |t|
81
81
  t.integer :team_id
82
82
  t.string :first_name, :last_name
83
- t.timestamps
83
+ t.timestamps null: false
84
84
  end
85
85
 
86
86
  if include_data
metadata CHANGED
@@ -1,237 +1,251 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongify
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kalek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-29 00:00:00.000000000 Z
11
+ date: 2016-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.2'
19
+ version: '4.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '3.2'
26
+ version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '3.2'
33
+ version: '4.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '3.2'
40
+ version: '4.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mongo
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 1.10.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.10.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bson
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.10.2
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.10.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bson_ext
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 1.10.2
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.10.2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: highline
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: 1.6.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.6.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '2.0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec-collection_matchers
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: cucumber
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - '>='
129
+ - - ">="
116
130
  - !ruby/object:Gem::Version
117
131
  version: '0.10'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - '>='
136
+ - - ">="
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0.10'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: mocha
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - '>='
143
+ - - ">="
130
144
  - !ruby/object:Gem::Version
131
145
  version: 0.9.8
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - '>='
150
+ - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: 0.9.8
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: yard
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - '>='
157
+ - - ">="
144
158
  - !ruby/object:Gem::Version
145
- version: 0.5.3
159
+ version: '0.8'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - '>='
164
+ - - ">="
151
165
  - !ruby/object:Gem::Version
152
- version: 0.5.3
166
+ version: '0.8'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: sqlite3
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - '>='
171
+ - - ">="
158
172
  - !ruby/object:Gem::Version
159
173
  version: '1.3'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - '>='
178
+ - - ">="
165
179
  - !ruby/object:Gem::Version
166
180
  version: '1.3'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: pg
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
- - - '>='
185
+ - - ">="
172
186
  - !ruby/object:Gem::Version
173
187
  version: '0.17'
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
- - - '>='
192
+ - - ">="
179
193
  - !ruby/object:Gem::Version
180
194
  version: '0.17'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: mysql2
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
- - - ~>
199
+ - - ">="
186
200
  - !ruby/object:Gem::Version
187
- version: 0.3.1
201
+ version: '0.4'
188
202
  type: :development
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
- - - ~>
206
+ - - ">="
193
207
  - !ruby/object:Gem::Version
194
- version: 0.3.1
208
+ version: '0.4'
195
209
  - !ruby/object:Gem::Dependency
196
210
  name: watchr
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
- - - '>='
213
+ - - ">="
200
214
  - !ruby/object:Gem::Version
201
215
  version: '0.6'
202
216
  type: :development
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
- - - '>='
220
+ - - ">="
207
221
  - !ruby/object:Gem::Version
208
222
  version: '0.6'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: rake
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
- - - '>='
227
+ - - ">="
214
228
  - !ruby/object:Gem::Version
215
229
  version: '0'
216
230
  type: :development
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
- - - '>='
234
+ - - ">="
221
235
  - !ruby/object:Gem::Version
222
236
  version: '0'
223
237
  - !ruby/object:Gem::Dependency
224
- name: pry-plus
238
+ name: jazz_fingers
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
- - - '>='
241
+ - - ">="
228
242
  - !ruby/object:Gem::Version
229
243
  version: '0'
230
244
  type: :development
231
245
  prerelease: false
232
246
  version_requirements: !ruby/object:Gem::Requirement
233
247
  requirements:
234
- - - '>='
248
+ - - ">="
235
249
  - !ruby/object:Gem::Version
236
250
  version: '0'
237
251
  description: Mongify allows you to map your sql data into a mongodb document database
@@ -245,9 +259,9 @@ extra_rdoc_files:
245
259
  - CHANGELOG.rdoc
246
260
  - README.rdoc
247
261
  files:
248
- - .gitignore
249
- - .rspec
250
- - .yardopts
262
+ - ".gitignore"
263
+ - ".rspec"
264
+ - ".yardopts"
251
265
  - CHANGELOG.rdoc
252
266
  - Gemfile
253
267
  - Gemfile.lock
@@ -324,27 +338,27 @@ licenses: []
324
338
  metadata: {}
325
339
  post_install_message:
326
340
  rdoc_options:
327
- - --title
341
+ - "--title"
328
342
  - Mongify -- SQL db to Mongo db converter
329
- - --main
343
+ - "--main"
330
344
  - README
331
- - --line-numbers
332
- - --inline-source
345
+ - "--line-numbers"
346
+ - "--inline-source"
333
347
  require_paths:
334
348
  - lib
335
349
  required_ruby_version: !ruby/object:Gem::Requirement
336
350
  requirements:
337
- - - '>='
351
+ - - ">="
338
352
  - !ruby/object:Gem::Version
339
353
  version: 1.8.7
340
354
  required_rubygems_version: !ruby/object:Gem::Requirement
341
355
  requirements:
342
- - - '>='
356
+ - - ">="
343
357
  - !ruby/object:Gem::Version
344
358
  version: '0'
345
359
  requirements: []
346
360
  rubyforge_project:
347
- rubygems_version: 2.2.2
361
+ rubygems_version: 2.5.1
348
362
  signing_key:
349
363
  specification_version: 4
350
364
  summary: Translate your SQL data to MongoDB with ease