dump 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.gitignore +3 -1
- data/.rubocop.yml +47 -23
- data/.rubocop_todo.yml +105 -12
- data/.travis.yml +21 -31
- data/Appraisals +63 -0
- data/Gemfile +5 -26
- data/LICENSE.txt +1 -1
- data/README.markdown +3 -3
- data/dump.gemspec +11 -4
- data/lib/dump.rb +2 -2
- data/lib/dump/archive_tar_minitar.rb +1 -0
- data/lib/dump/assets.rb +1 -1
- data/lib/dump/capistrano.rb +3 -3
- data/lib/dump/capistrano/v2.rb +1 -0
- data/lib/dump/continious_timeout.rb +2 -2
- data/lib/dump/env/filter.rb +5 -5
- data/lib/dump/reader.rb +5 -1
- data/lib/dump/snapshot.rb +16 -12
- data/lib/dump/table_manipulation.rb +7 -1
- data/lib/dump/writer.rb +10 -3
- data/script/update_readme +1 -1
- data/spec/.gitignore +2 -0
- data/spec/cycle_spec.rb +1 -4
- data/spec/db/schema.rb +1 -1
- data/spec/dummy-5.0/.gitignore +21 -0
- data/spec/dummy-5.0/config.ru +5 -0
- data/spec/dummy-5.0/config/application.rb +25 -0
- data/spec/dummy-5.0/config/boot.rb +3 -0
- data/spec/dummy-5.0/config/cable.yml +9 -0
- data/spec/dummy-5.0/config/database.yml +25 -0
- data/spec/dummy-5.0/config/environment.rb +5 -0
- data/spec/dummy-5.0/config/environments/development.rb +47 -0
- data/spec/dummy-5.0/config/environments/production.rb +78 -0
- data/spec/dummy-5.0/config/environments/test.rb +42 -0
- data/spec/dummy-5.0/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/dummy-5.0/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy-5.0/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy-5.0/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy-5.0/config/initializers/inflections.rb +16 -0
- data/spec/dummy-5.0/config/initializers/mime_types.rb +4 -0
- data/spec/dummy-5.0/config/initializers/new_framework_defaults.rb +26 -0
- data/spec/dummy-5.0/config/initializers/session_store.rb +3 -0
- data/spec/dummy-5.0/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy-5.0/config/locales/en.yml +23 -0
- data/spec/dummy-5.0/config/puma.rb +47 -0
- data/spec/dummy-5.0/config/routes.rb +3 -0
- data/spec/dummy-5.0/config/secrets.yml +22 -0
- data/spec/dummy-5.0/config/spring.rb +6 -0
- data/spec/dummy-5.0/db/seeds.rb +7 -0
- data/spec/dummy-5.0/log/.keep +0 -0
- data/spec/dummy-5.1/.gitignore +23 -0
- data/spec/dummy-5.1/config.ru +5 -0
- data/spec/dummy-5.1/config/application.rb +31 -0
- data/spec/dummy-5.1/config/boot.rb +3 -0
- data/spec/dummy-5.1/config/cable.yml +10 -0
- data/spec/dummy-5.1/config/database.yml +25 -0
- data/spec/dummy-5.1/config/environment.rb +5 -0
- data/spec/dummy-5.1/config/environments/development.rb +47 -0
- data/spec/dummy-5.1/config/environments/production.rb +83 -0
- data/spec/dummy-5.1/config/environments/test.rb +42 -0
- data/spec/dummy-5.1/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/dummy-5.1/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy-5.1/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy-5.1/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy-5.1/config/initializers/inflections.rb +16 -0
- data/spec/dummy-5.1/config/initializers/mime_types.rb +4 -0
- data/spec/dummy-5.1/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy-5.1/config/locales/en.yml +33 -0
- data/spec/dummy-5.1/config/puma.rb +56 -0
- data/spec/dummy-5.1/config/routes.rb +3 -0
- data/spec/dummy-5.1/config/secrets.yml +32 -0
- data/spec/dummy-5.1/config/spring.rb +6 -0
- data/spec/dummy-5.1/db/seeds.rb +7 -0
- data/spec/dummy-5.1/log/.keep +0 -0
- data/spec/dummy-5.1/package.json +5 -0
- data/spec/dummy-5.2/.gitignore +28 -0
- data/spec/dummy-5.2/config.ru +5 -0
- data/spec/dummy-5.2/config/application.rb +33 -0
- data/spec/dummy-5.2/config/boot.rb +3 -0
- data/spec/dummy-5.2/config/cable.yml +10 -0
- data/spec/dummy-5.2/config/database.yml +25 -0
- data/spec/dummy-5.2/config/environment.rb +5 -0
- data/spec/dummy-5.2/config/environments/development.rb +54 -0
- data/spec/dummy-5.2/config/environments/production.rb +85 -0
- data/spec/dummy-5.2/config/environments/test.rb +46 -0
- data/spec/dummy-5.2/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/dummy-5.2/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy-5.2/config/initializers/content_security_policy.rb +25 -0
- data/spec/dummy-5.2/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy-5.2/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy-5.2/config/initializers/inflections.rb +16 -0
- data/spec/dummy-5.2/config/initializers/mime_types.rb +4 -0
- data/spec/dummy-5.2/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy-5.2/config/locales/en.yml +33 -0
- data/spec/dummy-5.2/config/puma.rb +34 -0
- data/spec/dummy-5.2/config/routes.rb +3 -0
- data/spec/dummy-5.2/config/spring.rb +6 -0
- data/spec/dummy-5.2/config/storage.yml +34 -0
- data/spec/dummy-5.2/db/seeds.rb +7 -0
- data/spec/dummy-5.2/package.json +5 -0
- data/spec/dummy_rails_app.rb +3 -5
- data/spec/dump/env_spec.rb +7 -7
- data/spec/dump/rails_root_spec.rb +1 -1
- data/spec/dump/reader_spec.rb +14 -14
- data/spec/dump/snapshot_spec.rb +24 -17
- data/spec/dump/table_manipulation_spec.rb +8 -5
- data/spec/dump/writer_spec.rb +3 -3
- data/spec/dump_spec.rb +1 -1
- metadata +189 -21
@@ -0,0 +1,7 @@
|
|
1
|
+
# This file should contain all the record creation needed to seed the database with its default values.
|
2
|
+
# The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
|
3
|
+
#
|
4
|
+
# Examples:
|
5
|
+
#
|
6
|
+
# movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
|
7
|
+
# Character.create(name: 'Luke', movie: movies.first)
|
data/spec/dummy_rails_app.rb
CHANGED
@@ -26,14 +26,12 @@ if (environment_path = environment_paths.find(&File.method(:exist?)))
|
|
26
26
|
else
|
27
27
|
app_path = "spec/dummy-#{version_parts.take(2).join('.')}"
|
28
28
|
|
29
|
-
|
30
|
-
"rails #{app_path}"
|
29
|
+
command = if version < '3'
|
30
|
+
"rails _#{version}_ #{app_path}"
|
31
31
|
else
|
32
|
-
"rails new #{app_path} -TSJ --skip-bundle"
|
32
|
+
"rails _#{version}_ new #{app_path} -TSJ --skip-bundle"
|
33
33
|
end
|
34
34
|
|
35
|
-
command = "RAILS_VERSION=#{version} bundle exec #{rails_command}"
|
36
|
-
|
37
35
|
abort [
|
38
36
|
"No dummy app for rails #{version}",
|
39
37
|
"Create using `#{command}`",
|
data/spec/dump/env_spec.rb
CHANGED
@@ -114,16 +114,16 @@ describe Dump::Env do
|
|
114
114
|
end
|
115
115
|
|
116
116
|
it 'returns hash with symbol keys for every command' do
|
117
|
-
expect(described_class.for_command(:create)).to eq(
|
118
|
-
expect(described_class.for_command(:restore)).to eq(
|
119
|
-
expect(described_class.for_command(:versions)).to eq(
|
117
|
+
expect(described_class.for_command(:create)).to eq(:desc => 'Description')
|
118
|
+
expect(described_class.for_command(:restore)).to eq(:like => 'Version')
|
119
|
+
expect(described_class.for_command(:versions)).to eq(:like => 'Version')
|
120
120
|
expect(described_class.for_command(:bad)).to eq({})
|
121
121
|
end
|
122
122
|
|
123
123
|
it 'returns hash with symbol keys for every command when asking for string keys' do
|
124
|
-
expect(described_class.for_command(:create, true)).to eq(
|
125
|
-
expect(described_class.for_command(:restore, true)).to eq(
|
126
|
-
expect(described_class.for_command(:versions, true)).to eq(
|
124
|
+
expect(described_class.for_command(:create, true)).to eq('DESC' => 'Description')
|
125
|
+
expect(described_class.for_command(:restore, true)).to eq('LIKE' => 'Version')
|
126
|
+
expect(described_class.for_command(:versions, true)).to eq('LIKE' => 'Version')
|
127
127
|
expect(described_class.for_command(:bad, true)).to eq({})
|
128
128
|
end
|
129
129
|
end
|
@@ -133,7 +133,7 @@ describe Dump::Env do
|
|
133
133
|
it 'converts keys to strings' do
|
134
134
|
@env = {:desc => 'text', :tags => 'a b c', 'LEAVE' => 'none', 'OTHER' => 'data'}
|
135
135
|
described_class.stringify!(@env)
|
136
|
-
expect(@env).to eq(
|
136
|
+
expect(@env).to eq('DESC' => 'text', 'TAGS' => 'a b c', 'LEAVE' => 'none', 'OTHER' => 'data')
|
137
137
|
end
|
138
138
|
end
|
139
139
|
end
|
data/spec/dump/reader_spec.rb
CHANGED
@@ -54,7 +54,7 @@ describe Reader do
|
|
54
54
|
qqq: 123
|
55
55
|
www: 345
|
56
56
|
TEXT
|
57
|
-
expect(
|
57
|
+
expect(@summary.to_s).to eq(output.gsub(/#{output[/^\s+/]}/, ' '))
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'pluralizes' do
|
@@ -356,14 +356,14 @@ describe Reader do
|
|
356
356
|
|
357
357
|
describe 'read_tables' do
|
358
358
|
it 'verifies connection' do
|
359
|
-
allow(@dump).to receive(:config).and_return(
|
359
|
+
allow(@dump).to receive(:config).and_return(:tables => [])
|
360
360
|
expect(@dump).to receive(:verify_connection)
|
361
361
|
@dump.read_tables
|
362
362
|
end
|
363
363
|
|
364
364
|
it 'calls read_table for each table in config' do
|
365
365
|
allow(@dump).to receive(:verify_connection)
|
366
|
-
allow(@dump).to receive(:config).and_return(
|
366
|
+
allow(@dump).to receive(:config).and_return(:tables => {'first' => 1, 'second' => 3})
|
367
367
|
|
368
368
|
expect(@dump).to receive(:read_table).with('first', 1)
|
369
369
|
expect(@dump).to receive(:read_table).with('second', 3)
|
@@ -373,7 +373,7 @@ describe Reader do
|
|
373
373
|
|
374
374
|
describe 'when called with restore_tables' do
|
375
375
|
it 'verifies connection and calls read_table for each table in restore_tables' do
|
376
|
-
allow(@dump).to receive(:config).and_return(
|
376
|
+
allow(@dump).to receive(:config).and_return(:tables => {'first' => 1, 'second' => 3})
|
377
377
|
|
378
378
|
expect(@dump).to receive(:verify_connection)
|
379
379
|
expect(@dump).to receive(:read_table).with('first', 1)
|
@@ -385,7 +385,7 @@ describe Reader do
|
|
385
385
|
end
|
386
386
|
|
387
387
|
it 'does not verfiy connection or call read_table for empty restore_tables' do
|
388
|
-
allow(@dump).to receive(:config).and_return(
|
388
|
+
allow(@dump).to receive(:config).and_return(:tables => {'first' => 1, 'second' => 3})
|
389
389
|
|
390
390
|
expect(@dump).not_to receive(:verify_connection)
|
391
391
|
expect(@dump).not_to receive(:read_table)
|
@@ -473,7 +473,7 @@ describe Reader do
|
|
473
473
|
expect(@dump).to receive(:quote_table_name).with('first').and_return('`first`')
|
474
474
|
expect(@dump).to receive(:columns_insert_sql).with(@columns).and_return('(`id`, `name`)')
|
475
475
|
@rows.each do |row|
|
476
|
-
expect(@dump).to receive(:values_insert_sql).with(row
|
476
|
+
expect(@dump).to receive(:values_insert_sql).with(row, &:inspect)
|
477
477
|
end
|
478
478
|
|
479
479
|
expect(@dump).to receive(:insert_into_table).with('`first`', '(`id`, `name`)', @rows.map(&:inspect))
|
@@ -497,7 +497,7 @@ describe Reader do
|
|
497
497
|
end
|
498
498
|
|
499
499
|
it 'does not read assets if config[:assets] is blank' do
|
500
|
-
allow(@dump).to receive(:config).and_return(
|
500
|
+
allow(@dump).to receive(:config).and_return(:assets => [])
|
501
501
|
expect(@dump).not_to receive(:find_entry)
|
502
502
|
@dump.read_assets
|
503
503
|
end
|
@@ -509,7 +509,7 @@ describe Reader do
|
|
509
509
|
|
510
510
|
it 'calls assets:delete' do
|
511
511
|
@assets = %w[images videos]
|
512
|
-
allow(@dump).to receive(:config).and_return(
|
512
|
+
allow(@dump).to receive(:config).and_return(:assets => @assets)
|
513
513
|
allow(@dump).to receive(:find_entry)
|
514
514
|
|
515
515
|
expect(@task).to receive(:invoke)
|
@@ -519,7 +519,7 @@ describe Reader do
|
|
519
519
|
|
520
520
|
it 'calls assets:delete with ASSETS set to config[:assets] joined with :' do
|
521
521
|
@assets = %w[images videos]
|
522
|
-
allow(@dump).to receive(:config).and_return(
|
522
|
+
allow(@dump).to receive(:config).and_return(:assets => @assets)
|
523
523
|
allow(@dump).to receive(:find_entry)
|
524
524
|
|
525
525
|
expect(@task).to receive(:invoke) do
|
@@ -532,7 +532,7 @@ describe Reader do
|
|
532
532
|
describe 'when called with restore_assets' do
|
533
533
|
it 'deletes files and dirs only in requested paths' do
|
534
534
|
@assets = %w[images videos]
|
535
|
-
allow(@dump).to receive(:config).and_return(
|
535
|
+
allow(@dump).to receive(:config).and_return(:assets => @assets)
|
536
536
|
|
537
537
|
expect(Dump::Assets).to receive('glob_asset_children').with('images', '**/*').and_return(%w[images images/a.jpg images/b.jpg])
|
538
538
|
expect(Dump::Assets).to receive('glob_asset_children').with('videos', '**/*').and_return(%w[videos videos/a.mov])
|
@@ -557,7 +557,7 @@ describe Reader do
|
|
557
557
|
|
558
558
|
it 'does not delete any files and dirs for empty list' do
|
559
559
|
@assets = %w[images videos]
|
560
|
-
allow(@dump).to receive(:config).and_return(
|
560
|
+
allow(@dump).to receive(:config).and_return(:assets => @assets)
|
561
561
|
|
562
562
|
expect(Dump::Assets).not_to receive('glob_asset_children')
|
563
563
|
|
@@ -577,7 +577,7 @@ describe Reader do
|
|
577
577
|
describe 'old style' do
|
578
578
|
it 'finds assets.tar' do
|
579
579
|
@assets = %w[images videos]
|
580
|
-
allow(@dump).to receive(:config).and_return(
|
580
|
+
allow(@dump).to receive(:config).and_return(:assets => @assets)
|
581
581
|
allow(Dir).to receive(:glob).and_return([])
|
582
582
|
allow(FileUtils).to receive(:remove_entry)
|
583
583
|
allow(@stream).to receive(:each)
|
@@ -592,7 +592,7 @@ describe Reader do
|
|
592
592
|
{'images' => {:files => 0, :total => 0}, 'videos' => {:files => 0, :total => 0}},
|
593
593
|
].each do |assets|
|
594
594
|
it 'rewrites rewind method to empty method - to not raise exception, opens tar and extracts each entry' do
|
595
|
-
allow(@dump).to receive(:config).and_return(
|
595
|
+
allow(@dump).to receive(:config).and_return(:assets => assets)
|
596
596
|
allow(Dir).to receive(:glob).and_return([])
|
597
597
|
allow(FileUtils).to receive(:remove_entry)
|
598
598
|
|
@@ -626,7 +626,7 @@ describe Reader do
|
|
626
626
|
{'images' => {:files => 0, :total => 0}, 'videos' => {:files => 0, :total => 0}},
|
627
627
|
].each do |assets|
|
628
628
|
it 'extracts each entry' do
|
629
|
-
allow(@dump).to receive(:config).and_return(
|
629
|
+
allow(@dump).to receive(:config).and_return(:assets => assets)
|
630
630
|
allow(Dir).to receive(:glob).and_return([])
|
631
631
|
allow(FileUtils).to receive(:remove_entry)
|
632
632
|
|
data/spec/dump/snapshot_spec.rb
CHANGED
@@ -120,8 +120,8 @@ describe Dump::Snapshot do
|
|
120
120
|
|
121
121
|
describe 'with tags' do
|
122
122
|
before do
|
123
|
-
# 0 1
|
124
|
-
dumps_tags = [''] + %w[a
|
123
|
+
# 0 1 2 3 4 5 6 7 8 9 10 11 12 131415 16
|
124
|
+
dumps_tags = [''] + %w[a a,d a,d,o a,d,s a,d,s,o a,o a,s a,s,o d d,o d,s d,s,o o s s,o z]
|
125
125
|
paths = dumps_tags.each_with_index.map do |dump_tags, i|
|
126
126
|
path = dump_path("196504140659#{10 + i}@#{dump_tags}.tgz")
|
127
127
|
expect(File).to receive(:file?).with(path).at_least(1).and_return(true)
|
@@ -135,15 +135,22 @@ describe Dump::Snapshot do
|
|
135
135
|
end
|
136
136
|
|
137
137
|
{
|
138
|
-
'x'
|
139
|
-
|
140
|
-
'
|
141
|
-
|
138
|
+
'x' => [],
|
139
|
+
|
140
|
+
'+x' => [],
|
141
|
+
|
142
|
+
'z' => [16],
|
143
|
+
|
144
|
+
'a,d,s,o' => [1..15],
|
145
|
+
|
142
146
|
'+a,+d,+s,+o' => [5],
|
143
|
-
|
147
|
+
|
148
|
+
'-o' => [0, 1, 2, 4, 7, 9, 11, 14, 16],
|
149
|
+
|
144
150
|
'a,b,c,+s,-o' => [4, 7],
|
145
|
-
|
146
|
-
'+d
|
151
|
+
|
152
|
+
'+a,+d' => [2, 3, 4, 5],
|
153
|
+
'+d,+a' => [2, 3, 4, 5],
|
147
154
|
}.each do |tags, ids|
|
148
155
|
it "returns dumps filtered by #{tags}" do
|
149
156
|
expect(described_class.list(:tags => tags)).to eq(described_class.list.values_at(*ids))
|
@@ -255,18 +262,18 @@ describe Dump::Snapshot do
|
|
255
262
|
|
256
263
|
describe 'get_filter_tags' do
|
257
264
|
it 'splits string and returns uniq non blank sorted tags' do
|
258
|
-
expect(described_class.new('').send(:get_filter_tags, 'a,+b,+c,-d')).to eq(
|
259
|
-
expect(described_class.new('').send(:get_filter_tags, ' a , + b , + c , - d ')).to eq(
|
260
|
-
expect(described_class.new('').send(:get_filter_tags, ' a , + c , + b , - d ')).to eq(
|
261
|
-
expect(described_class.new('').send(:get_filter_tags, ' a , + b , + , - ')).to eq(
|
262
|
-
expect(described_class.new('').send(:get_filter_tags, ' a , a , + b , + b , - d , - d ')).to eq(
|
265
|
+
expect(described_class.new('').send(:get_filter_tags, 'a,+b,+c,-d')).to eq(:simple => %w[a], :mandatory => %w[b c], :forbidden => %w[d])
|
266
|
+
expect(described_class.new('').send(:get_filter_tags, ' a , + b , + c , - d ')).to eq(:simple => %w[a], :mandatory => %w[b c], :forbidden => %w[d])
|
267
|
+
expect(described_class.new('').send(:get_filter_tags, ' a , + c , + b , - d ')).to eq(:simple => %w[a], :mandatory => %w[b c], :forbidden => %w[d])
|
268
|
+
expect(described_class.new('').send(:get_filter_tags, ' a , + b , + , - ')).to eq(:simple => %w[a], :mandatory => %w[b], :forbidden => [])
|
269
|
+
expect(described_class.new('').send(:get_filter_tags, ' a , a , + b , + b , - d , - d ')).to eq(:simple => %w[a], :mandatory => %w[b], :forbidden => %w[d])
|
263
270
|
expect{ described_class.new('').send(:get_filter_tags, 'a,+a') }.not_to raise_error
|
264
|
-
expect{ described_class.new('').send(:get_filter_tags, 'a,-a') }.to raise_error
|
265
|
-
expect{ described_class.new('').send(:get_filter_tags, '+a,-a') }.to raise_error
|
271
|
+
expect{ described_class.new('').send(:get_filter_tags, 'a,-a') }.to raise_error ArgumentError, /clashes/
|
272
|
+
expect{ described_class.new('').send(:get_filter_tags, '+a,-a') }.to raise_error ArgumentError, /clashes/
|
266
273
|
end
|
267
274
|
|
268
275
|
it 'accepts non string' do
|
269
|
-
expect(described_class.new('').send(:get_filter_tags, nil)).to eq(
|
276
|
+
expect(described_class.new('').send(:get_filter_tags, nil)).to eq(:simple => [], :mandatory => [], :forbidden => [])
|
270
277
|
end
|
271
278
|
end
|
272
279
|
|
@@ -141,7 +141,8 @@ describe Dump::TableManipulation do
|
|
141
141
|
expect(self).to receive(:table_columns).with('first').and_return(
|
142
142
|
[double(:column, :type => :integer, :limit => nil)] * 3 +
|
143
143
|
[double(:column, :type => :string, :limit => nil)] * 3 +
|
144
|
-
[double(:column, :type => :text, :limit => nil)]
|
144
|
+
[double(:column, :type => :text, :limit => nil)]
|
145
|
+
)
|
145
146
|
expect(table_chunk_size('first')).to satisfy{ |n|
|
146
147
|
(described_class::CHUNK_SIZE_MIN..described_class::CHUNK_SIZE_MAX).include?(n)
|
147
148
|
}
|
@@ -149,13 +150,15 @@ describe Dump::TableManipulation do
|
|
149
150
|
|
150
151
|
it 'does not return value less than CHUNK_SIZE_MIN' do
|
151
152
|
expect(self).to receive(:table_columns).with('first').and_return(
|
152
|
-
[double(:column, :type => :text, :limit => nil)] * 100
|
153
|
+
[double(:column, :type => :text, :limit => nil)] * 100
|
154
|
+
)
|
153
155
|
expect(table_chunk_size('first')).to eq(described_class::CHUNK_SIZE_MIN)
|
154
156
|
end
|
155
157
|
|
156
158
|
it 'does not return value more than CHUNK_SIZE_MAX' do
|
157
159
|
expect(self).to receive(:table_columns).with('first').and_return(
|
158
|
-
[double(:column, :type => :boolean, :limit => 1)] * 10
|
160
|
+
[double(:column, :type => :boolean, :limit => 1)] * 10
|
161
|
+
)
|
159
162
|
expect(table_chunk_size('first')).to eq(described_class::CHUNK_SIZE_MAX)
|
160
163
|
end
|
161
164
|
end
|
@@ -193,13 +196,13 @@ describe Dump::TableManipulation do
|
|
193
196
|
describe 'each_table_row' do
|
194
197
|
before do
|
195
198
|
@row_count = 550
|
196
|
-
@rows = Array.new(@row_count){ |i| {'id' =>
|
199
|
+
@rows = Array.new(@row_count){ |i| {'id' => i.succ.to_s} }
|
197
200
|
end
|
198
201
|
|
199
202
|
def verify_getting_rows
|
200
203
|
i = 0
|
201
204
|
each_table_row('first', @row_count) do |row|
|
202
|
-
expect(row).to eq(
|
205
|
+
expect(row).to eq('id' => i.succ.to_s)
|
203
206
|
i += 1
|
204
207
|
end
|
205
208
|
expect(i).to eq(@row_count)
|
data/spec/dump/writer_spec.rb
CHANGED
@@ -71,7 +71,7 @@ describe Writer do
|
|
71
71
|
@file = double('file')
|
72
72
|
expect(@file).to receive(:write).with('qwfpgj')
|
73
73
|
|
74
|
-
expect(@stream.tar).to receive(:add_file_simple).with('abc/def.txt', :mode =>
|
74
|
+
expect(@stream.tar).to receive(:add_file_simple).with('abc/def.txt', :mode => 0o100444, :size => 6).and_yield(@file)
|
75
75
|
|
76
76
|
@dump.create_file('abc/def.txt') do |file|
|
77
77
|
expect(file).to eq(@temp)
|
@@ -197,7 +197,7 @@ describe Writer do
|
|
197
197
|
|
198
198
|
@dump.write_assets
|
199
199
|
counts = {:files => 0, :total => 0}
|
200
|
-
expect(@config[:assets]).to eq(
|
200
|
+
expect(@config[:assets]).to eq('images/a' => counts, 'images/b' => counts, 'videos' => counts)
|
201
201
|
end
|
202
202
|
|
203
203
|
it 'uses glob to find files' do
|
@@ -283,7 +283,7 @@ describe Writer do
|
|
283
283
|
it 'dumps column names and values of each row' do
|
284
284
|
@file = double('file')
|
285
285
|
allow(@dump).to receive(:create_file).and_yield(@file)
|
286
|
-
@config.replace(
|
286
|
+
@config.replace(:tables => {'first' => 1, 'second' => 2}, :assets => %w[images videos])
|
287
287
|
|
288
288
|
expect(Marshal).to receive(:dump).with(@config, @file)
|
289
289
|
@dump.write_config
|
data/spec/dump_spec.rb
CHANGED
@@ -321,7 +321,7 @@ describe Dump do
|
|
321
321
|
it "raises if called with :leave which is not a number or 'none'" do
|
322
322
|
expect do
|
323
323
|
described_class.cleanup(:leave => 'nothing')
|
324
|
-
end.to raise_error
|
324
|
+
end.to raise_error ArgumentError, /number or "none"/
|
325
325
|
end
|
326
326
|
end
|
327
327
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Kuchin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: archive-tar-minitar
|
@@ -28,61 +28,74 @@ dependencies:
|
|
28
28
|
name: progress
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3.0'
|
34
|
-
- -
|
34
|
+
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: 3.0.1
|
37
|
+
- - "!="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 3.2.0
|
40
|
+
- - "!="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 3.2.1
|
37
43
|
type: :runtime
|
38
44
|
prerelease: false
|
39
45
|
version_requirements: !ruby/object:Gem::Requirement
|
40
46
|
requirements:
|
41
|
-
- - ~>
|
47
|
+
- - "~>"
|
42
48
|
- !ruby/object:Gem::Version
|
43
49
|
version: '3.0'
|
44
|
-
- -
|
50
|
+
- - ">="
|
45
51
|
- !ruby/object:Gem::Version
|
46
52
|
version: 3.0.1
|
53
|
+
- - "!="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 3.2.0
|
56
|
+
- - "!="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: 3.2.1
|
47
59
|
- !ruby/object:Gem::Dependency
|
48
60
|
name: rspec
|
49
61
|
requirement: !ruby/object:Gem::Requirement
|
50
62
|
requirements:
|
51
|
-
- - ~>
|
63
|
+
- - "~>"
|
52
64
|
- !ruby/object:Gem::Version
|
53
65
|
version: '3.0'
|
54
66
|
type: :development
|
55
67
|
prerelease: false
|
56
68
|
version_requirements: !ruby/object:Gem::Requirement
|
57
69
|
requirements:
|
58
|
-
- - ~>
|
70
|
+
- - "~>"
|
59
71
|
- !ruby/object:Gem::Version
|
60
72
|
version: '3.0'
|
61
73
|
- !ruby/object:Gem::Dependency
|
62
74
|
name: rubocop
|
63
75
|
requirement: !ruby/object:Gem::Requirement
|
64
76
|
requirements:
|
65
|
-
- - ~>
|
77
|
+
- - "~>"
|
66
78
|
- !ruby/object:Gem::Version
|
67
|
-
version: '0.
|
79
|
+
version: '0.59'
|
68
80
|
type: :development
|
69
81
|
prerelease: false
|
70
82
|
version_requirements: !ruby/object:Gem::Requirement
|
71
83
|
requirements:
|
72
|
-
- - ~>
|
84
|
+
- - "~>"
|
73
85
|
- !ruby/object:Gem::Version
|
74
|
-
version: '0.
|
86
|
+
version: '0.59'
|
75
87
|
description:
|
76
88
|
email:
|
77
89
|
executables: []
|
78
90
|
extensions: []
|
79
91
|
extra_rdoc_files: []
|
80
92
|
files:
|
81
|
-
- .gitignore
|
82
|
-
- .rubocop.yml
|
83
|
-
- .rubocop_todo.yml
|
84
|
-
- .travis.database.yml
|
85
|
-
- .travis.yml
|
93
|
+
- ".gitignore"
|
94
|
+
- ".rubocop.yml"
|
95
|
+
- ".rubocop_todo.yml"
|
96
|
+
- ".travis.database.yml"
|
97
|
+
- ".travis.yml"
|
98
|
+
- Appraisals
|
86
99
|
- Gemfile
|
87
100
|
- LICENSE.txt
|
88
101
|
- README.markdown
|
@@ -244,6 +257,82 @@ files:
|
|
244
257
|
- spec/dummy-4.2/config/secrets.yml
|
245
258
|
- spec/dummy-4.2/db/seeds.rb
|
246
259
|
- spec/dummy-4.2/log/.keep
|
260
|
+
- spec/dummy-5.0/.gitignore
|
261
|
+
- spec/dummy-5.0/config.ru
|
262
|
+
- spec/dummy-5.0/config/application.rb
|
263
|
+
- spec/dummy-5.0/config/boot.rb
|
264
|
+
- spec/dummy-5.0/config/cable.yml
|
265
|
+
- spec/dummy-5.0/config/database.yml
|
266
|
+
- spec/dummy-5.0/config/environment.rb
|
267
|
+
- spec/dummy-5.0/config/environments/development.rb
|
268
|
+
- spec/dummy-5.0/config/environments/production.rb
|
269
|
+
- spec/dummy-5.0/config/environments/test.rb
|
270
|
+
- spec/dummy-5.0/config/initializers/application_controller_renderer.rb
|
271
|
+
- spec/dummy-5.0/config/initializers/backtrace_silencers.rb
|
272
|
+
- spec/dummy-5.0/config/initializers/cookies_serializer.rb
|
273
|
+
- spec/dummy-5.0/config/initializers/filter_parameter_logging.rb
|
274
|
+
- spec/dummy-5.0/config/initializers/inflections.rb
|
275
|
+
- spec/dummy-5.0/config/initializers/mime_types.rb
|
276
|
+
- spec/dummy-5.0/config/initializers/new_framework_defaults.rb
|
277
|
+
- spec/dummy-5.0/config/initializers/session_store.rb
|
278
|
+
- spec/dummy-5.0/config/initializers/wrap_parameters.rb
|
279
|
+
- spec/dummy-5.0/config/locales/en.yml
|
280
|
+
- spec/dummy-5.0/config/puma.rb
|
281
|
+
- spec/dummy-5.0/config/routes.rb
|
282
|
+
- spec/dummy-5.0/config/secrets.yml
|
283
|
+
- spec/dummy-5.0/config/spring.rb
|
284
|
+
- spec/dummy-5.0/db/seeds.rb
|
285
|
+
- spec/dummy-5.0/log/.keep
|
286
|
+
- spec/dummy-5.1/.gitignore
|
287
|
+
- spec/dummy-5.1/config.ru
|
288
|
+
- spec/dummy-5.1/config/application.rb
|
289
|
+
- spec/dummy-5.1/config/boot.rb
|
290
|
+
- spec/dummy-5.1/config/cable.yml
|
291
|
+
- spec/dummy-5.1/config/database.yml
|
292
|
+
- spec/dummy-5.1/config/environment.rb
|
293
|
+
- spec/dummy-5.1/config/environments/development.rb
|
294
|
+
- spec/dummy-5.1/config/environments/production.rb
|
295
|
+
- spec/dummy-5.1/config/environments/test.rb
|
296
|
+
- spec/dummy-5.1/config/initializers/application_controller_renderer.rb
|
297
|
+
- spec/dummy-5.1/config/initializers/backtrace_silencers.rb
|
298
|
+
- spec/dummy-5.1/config/initializers/cookies_serializer.rb
|
299
|
+
- spec/dummy-5.1/config/initializers/filter_parameter_logging.rb
|
300
|
+
- spec/dummy-5.1/config/initializers/inflections.rb
|
301
|
+
- spec/dummy-5.1/config/initializers/mime_types.rb
|
302
|
+
- spec/dummy-5.1/config/initializers/wrap_parameters.rb
|
303
|
+
- spec/dummy-5.1/config/locales/en.yml
|
304
|
+
- spec/dummy-5.1/config/puma.rb
|
305
|
+
- spec/dummy-5.1/config/routes.rb
|
306
|
+
- spec/dummy-5.1/config/secrets.yml
|
307
|
+
- spec/dummy-5.1/config/spring.rb
|
308
|
+
- spec/dummy-5.1/db/seeds.rb
|
309
|
+
- spec/dummy-5.1/log/.keep
|
310
|
+
- spec/dummy-5.1/package.json
|
311
|
+
- spec/dummy-5.2/.gitignore
|
312
|
+
- spec/dummy-5.2/config.ru
|
313
|
+
- spec/dummy-5.2/config/application.rb
|
314
|
+
- spec/dummy-5.2/config/boot.rb
|
315
|
+
- spec/dummy-5.2/config/cable.yml
|
316
|
+
- spec/dummy-5.2/config/database.yml
|
317
|
+
- spec/dummy-5.2/config/environment.rb
|
318
|
+
- spec/dummy-5.2/config/environments/development.rb
|
319
|
+
- spec/dummy-5.2/config/environments/production.rb
|
320
|
+
- spec/dummy-5.2/config/environments/test.rb
|
321
|
+
- spec/dummy-5.2/config/initializers/application_controller_renderer.rb
|
322
|
+
- spec/dummy-5.2/config/initializers/backtrace_silencers.rb
|
323
|
+
- spec/dummy-5.2/config/initializers/content_security_policy.rb
|
324
|
+
- spec/dummy-5.2/config/initializers/cookies_serializer.rb
|
325
|
+
- spec/dummy-5.2/config/initializers/filter_parameter_logging.rb
|
326
|
+
- spec/dummy-5.2/config/initializers/inflections.rb
|
327
|
+
- spec/dummy-5.2/config/initializers/mime_types.rb
|
328
|
+
- spec/dummy-5.2/config/initializers/wrap_parameters.rb
|
329
|
+
- spec/dummy-5.2/config/locales/en.yml
|
330
|
+
- spec/dummy-5.2/config/puma.rb
|
331
|
+
- spec/dummy-5.2/config/routes.rb
|
332
|
+
- spec/dummy-5.2/config/spring.rb
|
333
|
+
- spec/dummy-5.2/config/storage.yml
|
334
|
+
- spec/dummy-5.2/db/seeds.rb
|
335
|
+
- spec/dummy-5.2/package.json
|
247
336
|
- spec/dummy_rails_app.rb
|
248
337
|
- spec/dump/env/filter_spec.rb
|
249
338
|
- spec/dump/env_spec.rb
|
@@ -260,24 +349,27 @@ files:
|
|
260
349
|
homepage: http://github.com/toy/dump
|
261
350
|
licenses:
|
262
351
|
- MIT
|
263
|
-
metadata:
|
352
|
+
metadata:
|
353
|
+
bug_tracker_uri: https://github.com/toy/dump/issues
|
354
|
+
documentation_uri: https://www.rubydoc.info/gems/dump/1.2.0
|
355
|
+
source_code_uri: https://github.com/toy/dump
|
264
356
|
post_install_message:
|
265
357
|
rdoc_options: []
|
266
358
|
require_paths:
|
267
359
|
- lib
|
268
360
|
required_ruby_version: !ruby/object:Gem::Requirement
|
269
361
|
requirements:
|
270
|
-
- -
|
362
|
+
- - ">="
|
271
363
|
- !ruby/object:Gem::Version
|
272
364
|
version: '0'
|
273
365
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
274
366
|
requirements:
|
275
|
-
- -
|
367
|
+
- - ">="
|
276
368
|
- !ruby/object:Gem::Version
|
277
369
|
version: '0'
|
278
370
|
requirements: []
|
279
371
|
rubyforge_project: dump
|
280
|
-
rubygems_version: 2.
|
372
|
+
rubygems_version: 2.7.8
|
281
373
|
signing_key:
|
282
374
|
specification_version: 4
|
283
375
|
summary: Rails app rake and capistrano tasks to create and restore dumps of database
|
@@ -418,6 +510,82 @@ test_files:
|
|
418
510
|
- spec/dummy-4.2/config/secrets.yml
|
419
511
|
- spec/dummy-4.2/db/seeds.rb
|
420
512
|
- spec/dummy-4.2/log/.keep
|
513
|
+
- spec/dummy-5.0/.gitignore
|
514
|
+
- spec/dummy-5.0/config.ru
|
515
|
+
- spec/dummy-5.0/config/application.rb
|
516
|
+
- spec/dummy-5.0/config/boot.rb
|
517
|
+
- spec/dummy-5.0/config/cable.yml
|
518
|
+
- spec/dummy-5.0/config/database.yml
|
519
|
+
- spec/dummy-5.0/config/environment.rb
|
520
|
+
- spec/dummy-5.0/config/environments/development.rb
|
521
|
+
- spec/dummy-5.0/config/environments/production.rb
|
522
|
+
- spec/dummy-5.0/config/environments/test.rb
|
523
|
+
- spec/dummy-5.0/config/initializers/application_controller_renderer.rb
|
524
|
+
- spec/dummy-5.0/config/initializers/backtrace_silencers.rb
|
525
|
+
- spec/dummy-5.0/config/initializers/cookies_serializer.rb
|
526
|
+
- spec/dummy-5.0/config/initializers/filter_parameter_logging.rb
|
527
|
+
- spec/dummy-5.0/config/initializers/inflections.rb
|
528
|
+
- spec/dummy-5.0/config/initializers/mime_types.rb
|
529
|
+
- spec/dummy-5.0/config/initializers/new_framework_defaults.rb
|
530
|
+
- spec/dummy-5.0/config/initializers/session_store.rb
|
531
|
+
- spec/dummy-5.0/config/initializers/wrap_parameters.rb
|
532
|
+
- spec/dummy-5.0/config/locales/en.yml
|
533
|
+
- spec/dummy-5.0/config/puma.rb
|
534
|
+
- spec/dummy-5.0/config/routes.rb
|
535
|
+
- spec/dummy-5.0/config/secrets.yml
|
536
|
+
- spec/dummy-5.0/config/spring.rb
|
537
|
+
- spec/dummy-5.0/db/seeds.rb
|
538
|
+
- spec/dummy-5.0/log/.keep
|
539
|
+
- spec/dummy-5.1/.gitignore
|
540
|
+
- spec/dummy-5.1/config.ru
|
541
|
+
- spec/dummy-5.1/config/application.rb
|
542
|
+
- spec/dummy-5.1/config/boot.rb
|
543
|
+
- spec/dummy-5.1/config/cable.yml
|
544
|
+
- spec/dummy-5.1/config/database.yml
|
545
|
+
- spec/dummy-5.1/config/environment.rb
|
546
|
+
- spec/dummy-5.1/config/environments/development.rb
|
547
|
+
- spec/dummy-5.1/config/environments/production.rb
|
548
|
+
- spec/dummy-5.1/config/environments/test.rb
|
549
|
+
- spec/dummy-5.1/config/initializers/application_controller_renderer.rb
|
550
|
+
- spec/dummy-5.1/config/initializers/backtrace_silencers.rb
|
551
|
+
- spec/dummy-5.1/config/initializers/cookies_serializer.rb
|
552
|
+
- spec/dummy-5.1/config/initializers/filter_parameter_logging.rb
|
553
|
+
- spec/dummy-5.1/config/initializers/inflections.rb
|
554
|
+
- spec/dummy-5.1/config/initializers/mime_types.rb
|
555
|
+
- spec/dummy-5.1/config/initializers/wrap_parameters.rb
|
556
|
+
- spec/dummy-5.1/config/locales/en.yml
|
557
|
+
- spec/dummy-5.1/config/puma.rb
|
558
|
+
- spec/dummy-5.1/config/routes.rb
|
559
|
+
- spec/dummy-5.1/config/secrets.yml
|
560
|
+
- spec/dummy-5.1/config/spring.rb
|
561
|
+
- spec/dummy-5.1/db/seeds.rb
|
562
|
+
- spec/dummy-5.1/log/.keep
|
563
|
+
- spec/dummy-5.1/package.json
|
564
|
+
- spec/dummy-5.2/.gitignore
|
565
|
+
- spec/dummy-5.2/config.ru
|
566
|
+
- spec/dummy-5.2/config/application.rb
|
567
|
+
- spec/dummy-5.2/config/boot.rb
|
568
|
+
- spec/dummy-5.2/config/cable.yml
|
569
|
+
- spec/dummy-5.2/config/database.yml
|
570
|
+
- spec/dummy-5.2/config/environment.rb
|
571
|
+
- spec/dummy-5.2/config/environments/development.rb
|
572
|
+
- spec/dummy-5.2/config/environments/production.rb
|
573
|
+
- spec/dummy-5.2/config/environments/test.rb
|
574
|
+
- spec/dummy-5.2/config/initializers/application_controller_renderer.rb
|
575
|
+
- spec/dummy-5.2/config/initializers/backtrace_silencers.rb
|
576
|
+
- spec/dummy-5.2/config/initializers/content_security_policy.rb
|
577
|
+
- spec/dummy-5.2/config/initializers/cookies_serializer.rb
|
578
|
+
- spec/dummy-5.2/config/initializers/filter_parameter_logging.rb
|
579
|
+
- spec/dummy-5.2/config/initializers/inflections.rb
|
580
|
+
- spec/dummy-5.2/config/initializers/mime_types.rb
|
581
|
+
- spec/dummy-5.2/config/initializers/wrap_parameters.rb
|
582
|
+
- spec/dummy-5.2/config/locales/en.yml
|
583
|
+
- spec/dummy-5.2/config/puma.rb
|
584
|
+
- spec/dummy-5.2/config/routes.rb
|
585
|
+
- spec/dummy-5.2/config/spring.rb
|
586
|
+
- spec/dummy-5.2/config/storage.yml
|
587
|
+
- spec/dummy-5.2/db/seeds.rb
|
588
|
+
- spec/dummy-5.2/package.json
|
421
589
|
- spec/dummy_rails_app.rb
|
422
590
|
- spec/dump/env/filter_spec.rb
|
423
591
|
- spec/dump/env_spec.rb
|