guard-migrate 1.2.0 → 1.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2fd638587e2b96584a057e8873cebf55c0da88f0
4
- data.tar.gz: 4e5e7d7c1b183c2a740a3b600be1776eb67a6735
3
+ metadata.gz: 94e39e4669548c3a7a65480b567526254cf3dc56
4
+ data.tar.gz: 0d7f4d9854caed22c1ca0537ef79bed0ed37a026
5
5
  SHA512:
6
- metadata.gz: dc9b23bfa2aae9a3ee9f0fdb927812983bdca5ab52d63e146c66593e791308f12588876bd3d75829327b82ed7e00e22dd2c6927a272b38c496e0d194b7b89987
7
- data.tar.gz: b5ba9b3ba42cc9f73f1882eee89c5aca35dcce9427e26ccec1a8379b7fdd0ed99a26ec952cab3ecd40bf13fc56c284bb47a05c89bf96b8090f683198d7426dd1
6
+ metadata.gz: 1fe3e66b477a708630eb2c3e81f595fd0cbac696353c3dfdd6b657e03da28fa17f4b3a51841cee648d128d1b5a16cf5a1d17a97672d1b13d31f7353e1cf10ba4
7
+ data.tar.gz: b018ae5ef203ed064ca69d1a12b350e1918430c2b68f9a6efb5c94e768f8d9839427cfbaddd10714cb3d39ac5765fe05f867474533d9616374dfe98cb9a32fc4
data/lib/guard/migrate.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'guard/plugin'
1
+ require 'guard/compat/plugin'
2
2
 
3
3
  module Guard
4
4
  class Migrate < Plugin
@@ -6,7 +6,7 @@ module Guard
6
6
  autoload :Migration, 'guard/migrate/migration'
7
7
  attr_reader :seed, :rails_env
8
8
 
9
- def initialize(options={})
9
+ def initialize(options = {})
10
10
  super
11
11
 
12
12
  @bundler = true unless options[:bundler] == false
@@ -70,10 +70,10 @@ module Guard
70
70
 
71
71
  # Called on file(s) modifications
72
72
  def run_on_changes(paths)
73
- if paths.any?{|path| path.match(%r{^db/migrate/(\d+).+\.rb})} || reset?
74
- migrations = paths.map {|path| Migration.new(path)}
73
+ if paths.any? { |path| path.match(%r{^db/migrate/(\d+).+\.rb}) } || reset?
74
+ migrations = paths.map { |path| Migration.new(path) }
75
75
  migrate(migrations)
76
- elsif paths.any?{|path| path.match(%r{^db/seeds\.rb$})}
76
+ elsif paths.any? { |path| path.match(%r{^db/seeds\.rb$}) }
77
77
  seed_only
78
78
  end
79
79
  end
@@ -81,9 +81,9 @@ module Guard
81
81
  def migrate(migrations = [])
82
82
  return if !reset? && migrations.empty?
83
83
  if reset?
84
- UI.info "Running #{rake_string}"
84
+ Compat::UI.info "Running #{rake_string}"
85
85
  result = system(rake_string)
86
- result &&= "reset"
86
+ result &&= 'reset'
87
87
  else
88
88
  result = run_all_migrations(migrations)
89
89
  end
@@ -92,9 +92,9 @@ module Guard
92
92
  end
93
93
 
94
94
  def seed_only
95
- UI.info "Running #{seed_only_string}"
95
+ Compat::UI.info "Running #{seed_only_string}"
96
96
  result = system(seed_only_string)
97
- result &&= "seed"
97
+ result &&= 'seed'
98
98
  Notify.new(result).notify
99
99
  end
100
100
 
@@ -111,7 +111,7 @@ module Guard
111
111
  seed_string,
112
112
  clone_string,
113
113
  rails_env_string
114
- ].compact.join(" ")
114
+ ].compact.join(' ')
115
115
  end
116
116
 
117
117
  def seed_only_string
@@ -122,7 +122,7 @@ module Guard
122
122
  seed_string,
123
123
  clone_string,
124
124
  rails_env_string
125
- ].compact.join(" ")
125
+ ].compact.join(' ')
126
126
  end
127
127
 
128
128
  private
@@ -131,11 +131,11 @@ module Guard
131
131
  result = nil
132
132
  migrations.each do |migration|
133
133
  if migration.valid?
134
- UI.info "Running #{rake_string(migration.version)}"
134
+ Compat::UI.info "Running #{rake_string(migration.version)}"
135
135
  result = system rake_string(migration.version)
136
136
  break unless result
137
137
  else
138
- UI.info "Skip empty migration - #{migration.version}"
138
+ Compat::UI.info "Skip empty migration - #{migration.version}"
139
139
  end
140
140
  end
141
141
 
@@ -143,11 +143,11 @@ module Guard
143
143
  end
144
144
 
145
145
  def rake_command
146
- "rake" unless custom_command.to_s.match(/rake/)
146
+ 'rake' unless custom_command.to_s.match(/rake/)
147
147
  end
148
148
 
149
149
  def bundler_command
150
- "bundle exec" if bundler?
150
+ 'bundle exec' if bundler?
151
151
  end
152
152
 
153
153
  def custom_command
@@ -159,24 +159,21 @@ module Guard
159
159
  end
160
160
 
161
161
  def clone_string
162
- if test_clone? and !custom_command.to_s.match(/db:test:clone/)
163
- "db:test:clone"
164
- end
162
+ return if !test_clone? || custom_command.to_s.match(/db:test:clone/)
163
+ 'db:test:clone'
165
164
  end
166
165
 
167
166
  def seed_string
168
- "db:seed" if @seed
167
+ 'db:seed' if @seed
169
168
  end
170
169
 
171
170
  def migrate_string(version)
172
- if !custom_command.to_s.match(/db:migrate/)
173
- string = "db:migrate"
174
- string += ":reset" if reset?
175
- string += ":redo VERSION=#{version}" if run_redo?(version)
176
- string
177
- end
178
- end
171
+ return if custom_command.to_s.match(/db:migrate/)
179
172
 
173
+ string = 'db:migrate'
174
+ string += ':reset' if reset?
175
+ string += ":redo VERSION=#{version}" if run_redo?(version)
176
+ string
177
+ end
180
178
  end
181
179
  end
182
-
@@ -1,7 +1,6 @@
1
1
  module Guard
2
2
  class Migrate
3
3
  class Migration
4
-
5
4
  attr_accessor :path
6
5
 
7
6
  def initialize(_path)
@@ -19,9 +18,8 @@ module Guard
19
18
  rescue Errno::ENOENT
20
19
  false
21
20
  ensure
22
- begin; file.close; rescue; end
23
- end
24
-
21
+ begin; file.close; rescue; end
22
+ end
25
23
  end
26
24
  end
27
- end
25
+ end
@@ -6,10 +6,10 @@ module Guard
6
6
  end
7
7
 
8
8
  def notify
9
- ::Guard::Notifier.notify(
9
+ Guard::Compat::UI.notify(
10
10
  message,
11
- :title => "Database Migrations",
12
- :image => image
11
+ title: 'Database Migrations',
12
+ image: image
13
13
  )
14
14
  end
15
15
 
@@ -17,10 +17,10 @@ module Guard
17
17
 
18
18
  def message
19
19
  case @result
20
- when "reset" then "The database has been reset"
21
- when "seed" then "The database has been seeded"
22
- when true then "Migrations have been applied successfully"
23
- else "There was an error running migrations"
20
+ when 'reset' then 'The database has been reset'
21
+ when 'seed' then 'The database has been seeded'
22
+ when true then 'Migrations have been applied successfully'
23
+ else 'There was an error running migrations'
24
24
  end
25
25
  end
26
26
 
@@ -2,4 +2,3 @@ guard 'migrate' do
2
2
  watch(%r{^db/migrate/(\d+).+\.rb})
3
3
  watch('db/seeds.rb')
4
4
  end
5
-
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  module MigrateVersion
3
- VERSION = "1.2.0"
3
+ VERSION = '1.2.1'
4
4
  end
5
5
  end
@@ -1,50 +1,14 @@
1
- require 'spec_helper'
2
- require 'guard/guardfile'
3
- require 'files'
1
+ require 'guard/compat/test/template'
4
2
 
5
- @current_dir = Dir.pwd
6
- GUARDFILE_TEMPLATE = "#{File.dirname(__FILE__)}/../../../Guardfile"
7
- GUARD_MIGRATE_GUARDFILE_TEMPLATE =
8
- "#{File.dirname(__FILE__)}/../../../lib/guard/migrate/templates/Guardfile"
3
+ require 'guard/migrate'
9
4
 
10
- include Files
11
- working = nil
12
- files_dir = Files do
13
- working = dir 'working'
14
- end
15
-
16
- describe 'templates' do
17
-
18
- before(:each) do
19
- FileUtils.cd(working)
20
- end
5
+ RSpec.describe Guard::Migrate do
6
+ describe 'template' do
7
+ subject { Guard::Compat::Test::Template.new(described_class) }
21
8
 
22
- describe 'sample guardfile' do
23
-
24
- specify { File.exists?(GUARDFILE_TEMPLATE).should be_true }
25
-
26
- it 'is a sample Guardfile' do
27
- expect { Guard::Guardfile.create_guardfile }.to_not raise_error
28
- guardfile_contents = IO.read('Guardfile')
29
- guardfile_contents.should include('sample Guardfile')
30
- guardfile_contents.should_not include('db/migrate')
9
+ it 'works' do
10
+ expect(subject.changed('db/seeds.rb')).to eq(%w(db/seeds.rb))
11
+ expect(subject.changed('db/migrate/12345_add_some_field.rb')).to eq(%w(db/migrate/12345_add_some_field.rb))
31
12
  end
32
-
33
13
  end
34
-
35
- describe 'Guard::Migrate guardfile template' do
36
-
37
- specify { File.exists?(GUARD_MIGRATE_GUARDFILE_TEMPLATE).should be_true }
38
-
39
- it 'successfully initializes a Guard::Migrate guard' do
40
- expect { Guard::Guardfile.initialize_template('migrate') }.to_not raise_error
41
- guardfile_contents = IO.read('Guardfile')
42
- guardfile_contents.should include('sample Guardfile')
43
- guardfile_contents.should include('db/migrate')
44
- end
45
-
46
- end
47
-
48
14
  end
49
-
50
- FileUtils.cd(@current_dir)
@@ -1,11 +1,14 @@
1
- require 'spec_helper'
2
1
  require 'tempfile'
3
2
 
4
- describe Guard::Migrate do
5
- let(:options){ {watchers: paths}}
6
- let(:paths){{}}
3
+ require 'guard/compat/test/helper'
7
4
 
8
- subject{ Guard::Migrate.new(options) }
5
+ require 'guard/migrate'
6
+
7
+ RSpec.describe Guard::Migrate do
8
+ let(:options) { { watchers: paths } }
9
+ let(:paths) { {} }
10
+
11
+ subject { Guard::Migrate.new(options) }
9
12
 
10
13
  before(:all) do
11
14
  FileUtils.mkdir_p('db/migrate')
@@ -15,70 +18,107 @@ describe Guard::Migrate do
15
18
  FileUtils.rm_rf('db')
16
19
  end
17
20
 
18
- describe "options" do
19
- context "bundler" do
20
- context "with a gemfile found" do
21
- before{File.stub(:exist?).and_return(true) }
22
- its(:bundler?){should be_true}
23
- its(:rake_string){should match(/^bundle exec rake/)}
21
+ describe 'options' do
22
+ context 'bundler' do
23
+ context 'with a gemfile found' do
24
+ before { allow(File).to receive(:exist?).and_return(true) }
24
25
 
25
- context "with bunder set to false" do
26
- let(:options){ { :bundler => false }}
26
+ describe '#bundler?' do
27
+ subject { super().bundler? }
28
+ it { is_expected.to be_truthy }
29
+ end
27
30
 
28
- its(:bundler?){should be_false}
29
- its(:rake_string){should match(/^rake/)}
31
+ describe '#rake_string' do
32
+ subject { super().rake_string }
33
+ it { is_expected.to match(/^bundle exec rake/) }
34
+ end
35
+
36
+ context 'with bunder set to false' do
37
+ let(:options) { { bundler: false } }
38
+
39
+ describe '#bundler?' do
40
+ subject { super().bundler? }
41
+ it { is_expected.to be_falsey }
42
+ end
43
+
44
+ describe '#rake_string' do
45
+ subject { super().rake_string }
46
+ it { is_expected.to match(/^rake/) }
47
+ end
30
48
  end
31
49
  end
32
- context "with no gemfile found" do
33
- before{File.stub(:exist?).and_return(false)}
34
- its(:bundler?){should_not be_true}
35
- its(:rake_string){should match(/^rake/)}
50
+ context 'with no gemfile found' do
51
+ before { allow(File).to receive(:exist?).and_return(false) }
52
+
53
+ describe '#bundler?' do
54
+ subject { super().bundler? }
55
+ it { is_expected.not_to be_truthy }
56
+ end
57
+
58
+ describe '#rake_string' do
59
+ subject { super().rake_string }
60
+ it { is_expected.to match(/^rake/) }
61
+ end
36
62
  end
37
63
  end
38
64
 
39
- context "cmd" do
40
- context "without command customization" do
41
- its(:cmd?){should_not be_true}
65
+ context 'cmd' do
66
+ context 'without command customization' do
67
+ describe '#cmd?' do
68
+ subject { super().cmd? }
69
+ it { is_expected.not_to be_truthy }
70
+ end
42
71
  end
43
72
 
44
- context "with command customization" do
45
- before{File.stub(:exist?).and_return(false)}
46
- let(:options){ { :cmd => "custom command rake" } }
73
+ context 'with command customization' do
74
+ before { allow(File).to receive(:exist?).and_return(false) }
75
+ let(:options) { { cmd: 'custom command rake' } }
76
+
77
+ describe '#cmd?' do
78
+ subject { super().cmd? }
79
+ it { is_expected.to be_truthy }
80
+ end
47
81
 
48
- its(:cmd?){should be_true}
49
- its(:rake_string){should match(/^custom command rake/)}
82
+ describe '#rake_string' do
83
+ subject { super().rake_string }
84
+ it { is_expected.to match(/^custom command rake/) }
85
+ end
50
86
 
51
87
  context "without presence of 'rake' keyword" do
52
- let(:options){ { :cmd => "custom command" } }
88
+ let(:options) { { cmd: 'custom command' } }
53
89
 
54
- it "should raise and error" do
90
+ it 'should raise and error' do
55
91
  pending
92
+ fail 'pending'
56
93
  end
57
94
  end
58
95
 
59
- context "with Bundler" do
60
- before{File.stub(:exist?).and_return(true)}
96
+ context 'with Bundler' do
97
+ before { allow(File).to receive(:exist?).and_return(true) }
61
98
 
62
- its(:rake_string){should match(/^bundle exec custom command rake/)}
99
+ describe '#rake_string' do
100
+ subject { super().rake_string }
101
+ it { is_expected.to match(/^bundle exec custom command rake/) }
102
+ end
63
103
  end
64
104
 
65
- context "with custom rake task specified" do
66
- context "with duplication of db:migrate" do
67
- let(:options){ { :cmd => "custom command rake db:migrate" } }
105
+ context 'with custom rake task specified' do
106
+ context 'with duplication of db:migrate' do
107
+ let(:options) { { cmd: 'custom command rake db:migrate' } }
68
108
 
69
- context "rake_string" do
109
+ context 'rake_string' do
70
110
  it "should contains 'db:migrate' once" do
71
- subject.rake_string.scan("db:migrate").size.should == 1
111
+ expect(subject.rake_string.scan('db:migrate').size).to eq(1)
72
112
  end
73
113
  end
74
114
  end
75
115
 
76
- context "with duplication of db:test:clone" do
77
- let(:options){ { :cmd => "custom command rake db:test:clone" } }
116
+ context 'with duplication of db:test:clone' do
117
+ let(:options) { { cmd: 'custom command rake db:test:clone' } }
78
118
 
79
- context "rake_string" do
119
+ context 'rake_string' do
80
120
  it "should contains 'db:test:clone' once" do
81
- subject.rake_string.scan("db:test:clone").size.should == 1
121
+ expect(subject.rake_string.scan('db:test:clone').size).to eq(1)
82
122
  end
83
123
  end
84
124
  end
@@ -86,202 +126,299 @@ describe Guard::Migrate do
86
126
  end
87
127
  end
88
128
 
89
- context "test clone" do
90
- context "with no options passed" do
91
- its(:test_clone?){should be_false}
92
- its(:rake_string){should match(/rake db:migrate/)}
93
- its(:rake_string){should_not match(/db:test:clone/)}
129
+ context 'test clone' do
130
+ context 'with no options passed' do
131
+ describe '#test_clone?' do
132
+ subject { super().test_clone? }
133
+ it { is_expected.to be_falsey }
134
+ end
135
+
136
+ describe '#rake_string' do
137
+ subject { super().rake_string }
138
+ it { is_expected.to match(/rake db:migrate/) }
139
+ end
140
+
141
+ describe '#rake_string' do
142
+ subject { super().rake_string }
143
+ it { is_expected.not_to match(/db:test:clone/) }
144
+ end
94
145
  end
95
146
 
96
- context "when passed false" do
97
- let(:options){ {:test_clone => false} }
98
- its(:test_clone?){should be_false}
99
- its(:rake_string){should match(/rake db:migrate/)}
100
- its(:rake_string){should_not match(/db:test:clone/)}
147
+ context 'when passed false' do
148
+ let(:options) { { test_clone: false } }
149
+
150
+ describe '#test_clone?' do
151
+ subject { super().test_clone? }
152
+ it { is_expected.to be_falsey }
153
+ end
154
+
155
+ describe '#rake_string' do
156
+ subject { super().rake_string }
157
+ it { is_expected.to match(/rake db:migrate/) }
158
+ end
159
+
160
+ describe '#rake_string' do
161
+ subject { super().rake_string }
162
+ it { is_expected.not_to match(/db:test:clone/) }
163
+ end
101
164
  end
102
165
 
103
- context "when passed true" do
104
- let(:options){ {:test_clone => true} }
105
- its(:test_clone?){should be_true}
106
- its(:rake_string){should match(/rake db:migrate/)}
107
- its(:rake_string){should match(/db:test:clone/)}
166
+ context 'when passed true' do
167
+ let(:options) { { test_clone: true } }
168
+
169
+ describe '#test_clone?' do
170
+ subject { super().test_clone? }
171
+ it { is_expected.to be_truthy }
172
+ end
173
+
174
+ describe '#rake_string' do
175
+ subject { super().rake_string }
176
+ it { is_expected.to match(/rake db:migrate/) }
177
+ end
178
+
179
+ describe '#rake_string' do
180
+ subject { super().rake_string }
181
+ it { is_expected.to match(/db:test:clone/) }
182
+ end
108
183
  end
109
184
  end
110
185
 
111
- context "reset" do
112
- context "with no options passed" do
113
- its(:reset?){should_not be_true}
186
+ context 'reset' do
187
+ context 'with no options passed' do
188
+ describe '#reset?' do
189
+ subject { super().reset? }
190
+ it { is_expected.not_to be_truthy }
191
+ end
114
192
 
115
- context "with paths" do
116
- let(:paths){ ['1234'] }
117
- it "rake string should attempt redo of changed migration" do
118
- subject.rake_string(paths.first).should match(/rake db:migrate:redo VERSION\=1234/)
193
+ context 'with paths' do
194
+ let(:paths) { ['1234'] }
195
+ it 'rake string should attempt redo of changed migration' do
196
+ expect(subject.rake_string(paths.first)).to match(/rake db:migrate:redo VERSION\=1234/)
119
197
  end
120
198
  end
121
199
  end
122
200
 
123
- context "when passed true" do
124
- let(:options){ {:reset => true} }
125
- its(:reset?){should be_true}
126
- its(:rake_string){should match(/rake db:migrate:reset/)}
201
+ context 'when passed true' do
202
+ let(:options) { { reset: true } }
203
+
204
+ describe '#reset?' do
205
+ subject { super().reset? }
206
+ it { is_expected.to be_truthy }
207
+ end
208
+
209
+ describe '#rake_string' do
210
+ subject { super().rake_string }
211
+ it { is_expected.to match(/rake db:migrate:reset/) }
212
+ end
127
213
  end
128
214
  end
129
215
 
130
- context "run on start" do
131
- context "with no options set" do
132
- its(:run_on_start?){should_not be_true}
216
+ context 'run on start' do
217
+ context 'with no options set' do
218
+ describe '#run_on_start?' do
219
+ subject { super().run_on_start? }
220
+ it { is_expected.not_to be_truthy }
221
+ end
133
222
 
134
- it "should not run on start" do
135
- subject.should_receive(:migrate).never
223
+ it 'should not run on start' do
224
+ expect(subject).to receive(:migrate).never
136
225
  subject.start
137
226
  end
138
227
 
139
- it "should not run migrate on the reload command" do
140
- subject.should_receive(:migrate).never
228
+ it 'should not run migrate on the reload command' do
229
+ expect(subject).to receive(:migrate).never
141
230
  subject.reload
142
231
  end
143
232
 
144
- it "should not run migrate on the run all command" do
145
- subject.should_receive(:migrate).never
233
+ it 'should not run migrate on the run all command' do
234
+ expect(subject).to receive(:migrate).never
146
235
  subject.run_all
147
236
  end
148
237
  end
149
238
 
150
- context "when passed true" do
151
- let(:options){ {:run_on_start => true} }
152
- its(:run_on_start?){should be_true}
239
+ context 'when passed true' do
240
+ let(:options) { { run_on_start: true } }
153
241
 
154
- it "should run migrate on the start" do
155
- subject.should_receive(:migrate)
242
+ describe '#run_on_start?' do
243
+ subject { super().run_on_start? }
244
+ it { is_expected.to be_truthy }
245
+ end
246
+
247
+ it 'should run migrate on the start' do
248
+ expect(subject).to receive(:migrate)
156
249
  subject.start
157
250
  end
158
251
 
159
- it "should run migrate on the reload command" do
160
- subject.should_receive(:migrate)
252
+ it 'should run migrate on the reload command' do
253
+ expect(subject).to receive(:migrate)
161
254
  subject.reload
162
255
  end
163
256
 
164
- it "should run migrate on the run all command" do
165
- subject.should_receive(:migrate)
257
+ it 'should run migrate on the run all command' do
258
+ expect(subject).to receive(:migrate)
166
259
  subject.run_all
167
260
  end
168
261
 
169
- context "with reset set to true" do
170
- let(:options){ {:run_on_start => true, :reset => true} }
171
- it "should run a migrate reset on start" do
172
- subject.rake_string.should match(/db:migrate:reset/)
262
+ context 'with reset set to true' do
263
+ let(:options) { { run_on_start: true, reset: true } }
264
+ it 'should run a migrate reset on start' do
265
+ expect(subject.rake_string).to match(/db:migrate:reset/)
173
266
  end
174
267
  end
175
268
 
176
- context "with reset set to false" do
177
- let(:options){ {:run_on_start => true, :reset => false} }
178
- it "should run a regular migrate on start" do
179
- subject.rake_string.should match(/db:migrate/)
180
- subject.rake_string.should_not match(/db:migrate:reset/)
181
- subject.rake_string.should_not match(/db:migrate:redo/)
269
+ context 'with reset set to false' do
270
+ let(:options) { { run_on_start: true, reset: false } }
271
+ it 'should run a regular migrate on start' do
272
+ expect(subject.rake_string).to match(/db:migrate/)
273
+ expect(subject.rake_string).not_to match(/db:migrate:reset/)
274
+ expect(subject.rake_string).not_to match(/db:migrate:redo/)
182
275
  end
183
276
  end
184
277
  end
185
278
  end
186
279
 
187
280
  context 'Rails Environment' do
188
- context "when no option is passed" do
189
- its(:rails_env){should be_nil}
281
+ context 'when no option is passed' do
282
+ describe '#rails_env' do
283
+ subject { super().rails_env }
284
+ it { is_expected.to be_nil }
285
+ end
190
286
  end
191
287
 
192
- context "when a rails environment is passed" do
193
- let(:options){ {:rails_env => 'development'}}
194
- its(:rails_env){ should == 'development'}
288
+ context 'when a rails environment is passed' do
289
+ let(:options) { { rails_env: 'development' } }
195
290
 
196
- its(:rake_string){ should match(/RAILS_ENV=development/)}
291
+ describe '#rails_env' do
292
+ subject { super().rails_env }
293
+ it { is_expected.to eq('development') }
294
+ end
295
+
296
+ describe '#rake_string' do
297
+ subject { super().rake_string }
298
+ it { is_expected.to match(/RAILS_ENV=development/) }
299
+ end
197
300
  end
198
301
  end
199
302
 
200
- context "Seed the database" do
201
- context "when no option is passed" do
202
- its(:seed){ should be_nil }
303
+ context 'Seed the database' do
304
+ context 'when no option is passed' do
305
+ describe '#seed' do
306
+ subject { super().seed }
307
+ it { is_expected.to be_nil }
308
+ end
203
309
  end
204
310
 
205
- context "when set to true" do
206
- let(:options){ {:seed => true} }
207
- its(:seed){ should be_true }
208
- its(:rake_string){ should match(/db:seed/)}
311
+ context 'when set to true' do
312
+ let(:options) { { seed: true } }
313
+
314
+ describe '#seed' do
315
+ subject { super().seed }
316
+ it { is_expected.to be_truthy }
317
+ end
318
+
319
+ describe '#rake_string' do
320
+ subject { super().rake_string }
321
+ it { is_expected.to match(/db:seed/) }
322
+ end
209
323
  end
210
324
 
211
- context "when seed is set to true and clone is set to true" do
212
- let(:options){ {:seed => true, :test_clone => true} }
213
- it "runs the seed option before the clone option" do
214
- subject.rake_string.should match(/db:seed.*db:test:clone/)
325
+ context 'when seed is set to true and clone is set to true' do
326
+ let(:options) { { seed: true, test_clone: true } }
327
+ it 'runs the seed option before the clone option' do
328
+ expect(subject.rake_string).to match(/db:seed.*db:test:clone/)
215
329
  end
216
330
  end
217
331
  end
218
332
 
219
- context "when the seeds file is passed as the paths" do
220
- let(:paths){ ['db/seeds.rb'] }
221
- let(:options){ {:seed => true, :test_clone => true} }
222
- its(:seed_only_string){ should match(/db:seed db:test:clone/) }
333
+ context 'when the seeds file is passed as the paths' do
334
+ let(:paths) { ['db/seeds.rb'] }
335
+ let(:options) { { seed: true, test_clone: true } }
223
336
 
224
- it "runs the rake command with seed only" do
225
- subject.should_receive(:system).with(subject.seed_only_string)
337
+ describe '#seed_only_string' do
338
+ subject { super().seed_only_string }
339
+ it { is_expected.to match(/db:seed db:test:clone/) }
340
+ end
341
+
342
+ it 'runs the rake command with seed only' do
343
+ allow(Guard::Compat::UI).to receive(:info)
344
+ allow(Guard::Compat::UI).to receive(:notify)
345
+ expect(subject).to receive(:system).with(subject.seed_only_string)
226
346
  subject.run_on_changes paths
227
347
  end
228
348
 
229
- context "When reset is set to true" do
230
- let(:options){ {:seed => true, :reset => true} }
349
+ context 'When reset is set to true' do
350
+ let(:options) { { seed: true, reset: true } }
351
+
352
+ describe '#rake_string' do
353
+ subject { super().rake_string }
354
+ it { is_expected.to match(/db:seed/) }
355
+ end
231
356
 
232
- its(:rake_string){ should match(/db:seed/)}
233
- its(:rake_string){ should match(/db:migrate:reset/)}
357
+ describe '#rake_string' do
358
+ subject { super().rake_string }
359
+ it { is_expected.to match(/db:migrate:reset/) }
360
+ end
234
361
  end
235
362
  end
236
363
  end
237
364
 
238
- context "run on change should fixup the path to only the version" do
239
- ##I don't like this test much - consider refactoring
240
- let(:paths){ [create_valid_up_and_down_migration('1234_i_like_cheese').path] }
241
- it "should run the rake command" do
242
- subject.should_receive(:system).with(subject.rake_string('1234'))
365
+ context 'run on change should fixup the path to only the version' do
366
+ # #I don't like this test much - consider refactoring
367
+ let(:paths) { [create_valid_up_and_down_migration('1234_i_like_cheese').path] }
368
+ it 'should run the rake command' do
369
+ allow(Guard::Compat::UI).to receive(:info)
370
+ allow(Guard::Compat::UI).to receive(:notify)
371
+ expect(subject).to receive(:system).with(subject.rake_string('1234'))
243
372
  subject.run_on_changes paths
244
373
  end
245
374
  end
246
375
 
247
- context "run on change when set to reset should only run migrations one time" do
248
- let(:paths){ [create_valid_up_and_down_migration('1234_i_like_cheese').path, create_valid_change_migration('1235_i_like_cheese').path] }
249
- let(:options){ {:reset => true, :test_clone => true} }
250
- it "should run the rake command" do
251
- subject.should_receive(:system).with(subject.rake_string('1234'))
376
+ context 'run on change when set to reset should only run migrations one time' do
377
+ let(:paths) { [create_valid_up_and_down_migration('1234_i_like_cheese').path, create_valid_change_migration('1235_i_like_cheese').path] }
378
+ let(:options) { { reset: true, test_clone: true } }
379
+ it 'should run the rake command' do
380
+ expect(subject).to receive(:system).with(subject.rake_string('1234'))
381
+ allow(Guard::Compat::UI).to receive(:info)
382
+ allow(Guard::Compat::UI).to receive(:notify)
252
383
  subject.run_on_changes paths
253
384
  end
254
385
  end
255
386
 
256
- context "valid/invalid migrations" do
257
-
258
- it "should keep valid up/down migrations" do
387
+ context 'valid/invalid migrations' do
388
+ it 'should keep valid up/down migrations' do
259
389
  migration = create_valid_up_and_down_migration('1234_i_like_cheese')
260
390
 
261
- subject.should_receive(:system).with(subject.rake_string('1234'))
391
+ allow(Guard::Compat::UI).to receive(:info)
392
+ allow(Guard::Compat::UI).to receive(:notify)
393
+ expect(subject).to receive(:system).with(subject.rake_string('1234'))
262
394
  subject.run_on_changes [migration.path]
263
395
  end
264
396
 
265
- it "should keep valid change migrations" do
397
+ it 'should keep valid change migrations' do
266
398
  migration = create_valid_change_migration('1234_i_like_cheese')
267
399
 
268
- subject.should_receive(:system).with(subject.rake_string('1234'))
400
+ allow(Guard::Compat::UI).to receive(:info)
401
+ allow(Guard::Compat::UI).to receive(:notify)
402
+ expect(subject).to receive(:system).with(subject.rake_string('1234'))
269
403
  subject.run_on_changes [migration.path]
270
404
  end
271
405
 
272
- it "should remove empty up/down migrations" do
406
+ it 'should remove empty up/down migrations' do
273
407
  migration = create_invalid_up_and_down_migration('1234_i_like_cheese')
274
408
 
275
- subject.should_not_receive(:system).with(subject.rake_string('1234'))
409
+ allow(Guard::Compat::UI).to receive(:info)
410
+ allow(Guard::Compat::UI).to receive(:notify)
411
+ expect(subject).not_to receive(:system).with(subject.rake_string('1234'))
276
412
  subject.run_on_changes [migration.path]
277
413
  end
278
414
 
279
- it "should remove empty change migrations" do
415
+ it 'should remove empty change migrations' do
280
416
  migration = create_invalid_change_migration('1234_i_like_cheese')
281
417
 
282
- subject.should_not_receive(:system).with(subject.rake_string('1234'))
418
+ allow(Guard::Compat::UI).to receive(:info)
419
+ allow(Guard::Compat::UI).to receive(:notify)
420
+ expect(subject).not_to receive(:system).with(subject.rake_string('1234'))
283
421
  subject.run_on_changes [migration.path]
284
422
  end
285
423
  end
286
-
287
424
  end
data/spec/spec_helper.rb CHANGED
@@ -7,25 +7,33 @@ if RUBY_VERSION.to_f == 1.9
7
7
  end
8
8
  end
9
9
 
10
- require 'rspec'
11
- require 'guard/migrate'
12
-
13
10
  # Requires supporting files with custom matchers and macros, etc,
14
11
  # in ./support/ and its subdirectories.
15
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
12
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
16
13
 
17
14
  RSpec.configure do |config|
18
- config.color_enabled = true
19
- config.filter_run :focus => true
20
- config.run_all_when_everything_filtered = true
21
-
22
- config.before(:each) do
23
- ENV["GUARD_ENV"] = 'test'
15
+ config.expect_with :rspec do |expectations|
16
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
24
17
  end
25
18
 
26
- config.after(:each) do
27
- ENV["GUARD_ENV"] = nil
19
+ config.mock_with :rspec do |mocks|
20
+ mocks.verify_partial_doubles = true
28
21
  end
29
22
 
23
+ config.filter_run focus: (ENV['CI'] != 'true')
24
+ config.run_all_when_everything_filtered = true
25
+
26
+ config.disable_monkey_patching!
27
+
28
+ # config.warnings = true
29
+
30
+ config.default_formatter = 'doc' if config.files_to_run.one?
31
+
32
+ # config.profile_examples = 10
33
+
34
+ config.order = :random
35
+
36
+ Kernel.srand config.seed
37
+
30
38
  config.include MigrationFactory
31
39
  end
@@ -1,12 +1,11 @@
1
1
  module MigrationFactory
2
-
3
2
  def create_valid_up_and_down_migration(name)
4
3
  create_migration(name, valid_up_and_down_migration)
5
4
  end
6
5
 
7
6
  def create_valid_change_migration(name)
8
7
  create_migration(name, valid_change_migration)
9
- end
8
+ end
10
9
 
11
10
  def create_invalid_up_and_down_migration(name)
12
11
  create_migration(name, invalid_up_and_down_migration)
@@ -14,19 +13,19 @@ module MigrationFactory
14
13
 
15
14
  def create_invalid_change_migration(name)
16
15
  create_migration(name, invalid_change_migration)
17
- end
16
+ end
18
17
 
19
18
  private
20
19
 
21
- def create_migration(name, content)
22
- migration = File.new("db/migrate/#{name}.rb", 'w')
23
- migration.write(content)
24
- migration.close
25
- migration
26
- end
20
+ def create_migration(name, content)
21
+ migration = File.new("db/migrate/#{name}.rb", 'w')
22
+ migration.write(content)
23
+ migration.close
24
+ migration
25
+ end
27
26
 
28
- def valid_up_and_down_migration
29
- <<-EOS
27
+ def valid_up_and_down_migration
28
+ <<-EOS
30
29
  class ILikeCheese < ActiveRecord::Migration
31
30
  def up
32
31
  add_column :my_table, :my_column, :string
@@ -36,23 +35,23 @@ module MigrationFactory
36
35
  remove_column :my_table, :my_column
37
36
  end
38
37
  end
39
-
38
+
40
39
  EOS
41
- end
40
+ end
42
41
 
43
- def valid_change_migration
44
- <<-EOS
42
+ def valid_change_migration
43
+ <<-EOS
45
44
  class ILikeCheese < ActiveRecord::Migration
46
45
  def change
47
46
  add_column :my_table, :my_column, :string
48
47
  end
49
48
  end
50
-
49
+
51
50
  EOS
52
- end
51
+ end
53
52
 
54
- def invalid_up_and_down_migration
55
- <<-EOS
53
+ def invalid_up_and_down_migration
54
+ <<-EOS
56
55
  class ILikeCheese < ActiveRecord::Migration
57
56
  def up
58
57
  end
@@ -60,18 +59,17 @@ module MigrationFactory
60
59
  def down
61
60
  end
62
61
  end
63
-
62
+
64
63
  EOS
65
- end
64
+ end
66
65
 
67
- def invalid_change_migration
68
- <<-EOS
66
+ def invalid_change_migration
67
+ <<-EOS
69
68
  class ILikeCheese < ActiveRecord::Migration
70
69
  def change
71
70
  end
72
71
  end
73
-
74
- EOS
75
- end
76
72
 
77
- end
73
+ EOS
74
+ end
75
+ end
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-migrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoff Lanotte
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-06 00:00:00.000000000 Z
11
+ date: 2014-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: guard
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.3.0
19
+ version: '2.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: guard-compat
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: 2.3.0
40
+ version: '1.1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: activerecord
29
43
  requirement: !ruby/object:Gem::Requirement