guard-rails 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95174474f7158b781f56e351d7069b1d89ac7d94
4
- data.tar.gz: 9d2ad0756d2e990cf619a093bf72ce687a6723ec
3
+ metadata.gz: 67204488cf9dc70a5f92d1f1cca1ff87b0936a2c
4
+ data.tar.gz: d3375c351092f169bc3a3a57e67f670ef91367e4
5
5
  SHA512:
6
- metadata.gz: 2ce575bea742462c421ec00c2675bcabd303a64148cf644189ee1f1fc70382183102443bd8be5f0bfdbc38f1cc8877d5e4f5dbe98fb2eceb4baa9e34c04a9be4
7
- data.tar.gz: d851c55f50720226db322ca3c1914610e30d3f9bf7a454751c314230326541b1e01720532029083707dfe06f75135eea9dc47d761dabec3b3d65192ca90d4624
6
+ metadata.gz: 965491b5a14754d3ca52255568edd514970979a3c08c5309a3c748c0c2fcd067c733a29396ef231b19159709e95f61878bb2be54b2cb81ccec4282cc3575b8af
7
+ data.tar.gz: 09845a32d24d05b0aa25905453489888d6bdab523bd90b0d76b6afc430004e7f1f411767a66d9de373a17c5d477cc5e7dec77e4da6b2567a5d1e75b8a5b35450
data/.travis.yml CHANGED
@@ -4,3 +4,6 @@ rvm:
4
4
  - 2.1.0
5
5
  - jruby
6
6
  script: "bundle exec rake spec"
7
+ addons:
8
+ code_climate:
9
+ repo_token: 2188902454f0733604836cd02e84f17634b7a49e337269905e0757051db2e3ca
data/Gemfile CHANGED
@@ -1,17 +1,18 @@
1
1
  source "http://rubygems.org"
2
- # source 'http://ruby.taobao.org'
3
2
 
4
- # Specify your gem's dependencies in guard-rails.gemspec
5
3
  gemspec
6
- gem 'rake'
7
- gem 'fakefs', :require => nil
8
- gem 'guard'
9
- gem 'guard-bundler'
10
- gem 'guard-rspec'
11
4
 
12
- gem 'rb-fsevent', '>= 0.3.9'
13
- gem 'rb-inotify', '>= 0.5.1'
5
+ # Development tools
6
+ group :development do
7
+ gem 'rake'
8
+ gem 'guard'
9
+ gem 'guard-bundler'
10
+ gem 'guard-rspec'
14
11
 
15
- # Notification System
16
- gem 'terminal-notifier-guard', :require => RUBY_PLATFORM.downcase.include?("darwin") ? 'terminal-notifier-guard' : nil
17
- gem 'libnotify', :require => RUBY_PLATFORM.downcase.include?("linux") ? 'libnotify' : nil
12
+ # Notification System
13
+ gem 'terminal-notifier-guard', require: RUBY_PLATFORM.downcase.include?("darwin") ? 'terminal-notifier-guard' : nil
14
+ gem 'libnotify', require: RUBY_PLATFORM.downcase.include?("linux") ? 'libnotify' : nil
15
+ end
16
+
17
+ # Test Coverage
18
+ gem "codeclimate-test-reporter", group: :test, require: nil
data/Gemfile.lock CHANGED
@@ -1,17 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- guard-rails (0.5.2)
4
+ guard-rails (0.6.0)
5
5
  guard (~> 2.0)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
- celluloid (0.15.2)
11
- timers (~> 1.1.0)
10
+ celluloid (0.16.0)
11
+ timers (~> 4.0.0)
12
+ codeclimate-test-reporter (0.4.0)
13
+ simplecov (>= 0.7.1, < 1.0.0)
12
14
  coderay (1.1.0)
13
15
  diff-lcs (1.2.5)
14
- fakefs (0.5.2)
16
+ docile (1.1.5)
17
+ fakefs (0.5.3)
15
18
  ffi (1.9.3)
16
19
  ffi (1.9.3-java)
17
20
  formatador (0.2.5)
@@ -24,9 +27,11 @@ GEM
24
27
  guard-bundler (2.0.0)
25
28
  bundler (~> 1.0)
26
29
  guard (~> 2.2)
27
- guard-rspec (4.2.10)
30
+ guard-rspec (4.3.1)
28
31
  guard (~> 2.1)
29
32
  rspec (>= 2.14, < 4.0)
33
+ hitimes (1.2.2)
34
+ hitimes (1.2.2-java)
30
35
  libnotify (0.8.3)
31
36
  ffi (>= 1.0.11)
32
37
  listen (2.7.9)
@@ -34,15 +39,13 @@ GEM
34
39
  rb-fsevent (>= 0.9.3)
35
40
  rb-inotify (>= 0.9)
36
41
  lumberjack (1.0.9)
37
- metaclass (0.0.4)
38
42
  method_source (0.8.2)
39
- mocha (1.1.0)
40
- metaclass (~> 0.0.1)
41
- pry (0.10.0)
43
+ multi_json (1.10.1)
44
+ pry (0.10.1)
42
45
  coderay (~> 1.1.0)
43
46
  method_source (~> 0.8.1)
44
47
  slop (~> 3.4)
45
- pry (0.10.0-java)
48
+ pry (0.10.1-java)
46
49
  coderay (~> 1.1.0)
47
50
  method_source (~> 0.8.1)
48
51
  slop (~> 3.4)
@@ -51,20 +54,31 @@ GEM
51
54
  rb-fsevent (0.9.4)
52
55
  rb-inotify (0.9.5)
53
56
  ffi (>= 0.5.0)
54
- rspec (2.99.0)
55
- rspec-core (~> 2.99.0)
56
- rspec-expectations (~> 2.99.0)
57
- rspec-mocks (~> 2.99.0)
58
- rspec-core (2.99.1)
59
- rspec-expectations (2.99.1)
60
- diff-lcs (>= 1.1.3, < 2.0)
61
- rspec-mocks (2.99.1)
62
- slop (3.5.0)
57
+ rr (1.1.2)
58
+ rspec (3.1.0)
59
+ rspec-core (~> 3.1.0)
60
+ rspec-expectations (~> 3.1.0)
61
+ rspec-mocks (~> 3.1.0)
62
+ rspec-core (3.1.2)
63
+ rspec-support (~> 3.1.0)
64
+ rspec-expectations (3.1.0)
65
+ diff-lcs (>= 1.2.0, < 2.0)
66
+ rspec-support (~> 3.1.0)
67
+ rspec-mocks (3.1.0)
68
+ rspec-support (~> 3.1.0)
69
+ rspec-support (3.1.0)
70
+ simplecov (0.9.0)
71
+ docile (~> 1.1.0)
72
+ multi_json
73
+ simplecov-html (~> 0.8.0)
74
+ simplecov-html (0.8.0)
75
+ slop (3.6.0)
63
76
  spoon (0.0.4)
64
77
  ffi
65
78
  terminal-notifier-guard (1.5.3)
66
79
  thor (0.19.1)
67
- timers (1.1.0)
80
+ timers (4.0.1)
81
+ hitimes
68
82
  version (1.0.0)
69
83
 
70
84
  PLATFORMS
@@ -72,16 +86,15 @@ PLATFORMS
72
86
  ruby
73
87
 
74
88
  DEPENDENCIES
75
- fakefs
89
+ codeclimate-test-reporter
90
+ fakefs (~> 0.5)
76
91
  guard
77
92
  guard-bundler
78
93
  guard-rails!
79
94
  guard-rspec
80
95
  libnotify
81
- mocha (~> 1.0)
82
96
  rake
83
- rb-fsevent (>= 0.3.9)
84
- rb-inotify (>= 0.5.1)
85
- rspec (~> 2.6)
97
+ rr (~> 1.0)
98
+ rspec (~> 3.0)
86
99
  terminal-notifier-guard
87
100
  version (>= 1.0.0)
data/README.md CHANGED
@@ -4,6 +4,7 @@
4
4
  [![Build Status](https://travis-ci.org/ranmocy/guard-rails.png)](https://travis-ci.org/ranmocy/guard-rails)
5
5
  [![Dependency Status](https://gemnasium.com/ranmocy/guard-rails.png)](https://gemnasium.com/ranmocy/guard-rails)
6
6
  [![Code Climate](https://codeclimate.com/github/ranmocy/guard-rails.png)](https://codeclimate.com/github/ranmocy/guard-rails)
7
+ [![Test Coverage](https://codeclimate.com/github/ranmocy/guard-rails/badges/coverage.svg)](https://codeclimate.com/github/ranmocy/guard-rails)
7
8
 
8
9
  ## Main repository
9
10
  Currently, the official fork repository is at [ranmocy/guard-rails][ranmocy-guard-rails].
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.3
1
+ 0.6.0
data/guard-rails.gemspec CHANGED
@@ -11,16 +11,17 @@ Gem::Specification.new do |s|
11
11
  s.description = %q{Restart Rails when things change in your app}
12
12
  s.license = 'MIT'
13
13
 
14
- s.rubyforge_project = "guard-rails"
15
-
16
14
  s.files = `git ls-files`.split("\n")
17
15
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
17
  s.require_paths = ["lib"]
20
18
 
19
+ s.required_ruby_version = '>= 1.9'
20
+
21
21
  s.add_dependency 'guard', '~> 2.0'
22
22
 
23
- s.add_development_dependency 'rspec', '~> 2.6'
24
- s.add_development_dependency 'mocha', '~> 1.0'
23
+ s.add_development_dependency 'rspec', '~> 3.0'
24
+ s.add_development_dependency 'rr', '~> 1.0'
25
+ s.add_development_dependency 'fakefs', '~> 0.5'
25
26
  s.add_development_dependency 'version', '>= 1.0.0'
26
27
  end
@@ -103,7 +103,11 @@ module Guard
103
103
  end
104
104
 
105
105
  def run_rails_command!
106
- without_bundler_env { system(environment, build_command) }
106
+ if options[:CLI] || options[:zeus]
107
+ without_bundler_env { system(environment, build_command) }
108
+ else
109
+ system(environment, build_command)
110
+ end
107
111
  end
108
112
 
109
113
  def has_pid?
@@ -13,7 +13,7 @@ describe Guard::RailsRunner do
13
13
  describe '#pid' do
14
14
  include FakeFS::SpecHelpers
15
15
 
16
- context 'pid file exists' do
16
+ context 'when pid file exists' do
17
17
  let(:pid) { 12345 }
18
18
 
19
19
  before do
@@ -21,18 +21,18 @@ describe Guard::RailsRunner do
21
21
  File.open(runner.pid_file, 'w') { |fh| fh.print pid }
22
22
  end
23
23
 
24
- it "should read the pid" do
25
- runner.pid.should == pid
24
+ it "reads the pid" do
25
+ expect(runner.pid).to eq(pid)
26
26
  end
27
27
  end
28
28
 
29
- context 'pid file does not exist' do
30
- it "should return nil" do
31
- runner.pid.should be_nil
29
+ context 'when pid file does not exist' do
30
+ it "returns nil" do
31
+ expect(runner.pid).to be nil
32
32
  end
33
33
  end
34
34
 
35
- context 'custom rails root given' do
35
+ context 'when custom rails root given' do
36
36
  let(:options) { default_options.merge(:root => 'spec/dummy') }
37
37
  let(:pid) { 12345 }
38
38
 
@@ -41,194 +41,258 @@ describe Guard::RailsRunner do
41
41
  File.open(runner.pid_file, 'w') { |fh| fh.print pid }
42
42
  end
43
43
 
44
- it "should point to the right pid file" do
45
- runner.pid_file.should match %r{spec/dummy/tmp/pids/development.pid}
44
+ it "points to the right pid file" do
45
+ expect(runner.pid_file).to match %r{spec/dummy/tmp/pids/development.pid}
46
46
  end
47
47
  end
48
48
 
49
49
  end
50
50
 
51
51
  describe '#build_command' do
52
- context "CLI" do
52
+ context "with options[:CLI]" do
53
53
  let(:custom_cli) { 'custom_CLI_command' }
54
54
  let(:options) { default_options.merge(:CLI => custom_cli) }
55
- it "should have only custom CLI" do
56
- runner.build_command.should match(%r{#{custom_cli} --pid })
55
+ it "has customized CLI" do
56
+ expect(runner.build_command).to match(%r{#{custom_cli} --pid })
57
57
  end
58
58
 
59
59
  let(:custom_pid_file) { "tmp/pids/rails_dev.pid" }
60
60
  let(:options) { default_options.merge(:CLI => custom_cli, :pid_file => custom_pid_file) }
61
- it "should use custom pid_file" do
61
+ it "uses customized pid_file" do
62
62
  pid_file_path = File.expand_path custom_pid_file
63
- runner.build_command.should match(%r{#{custom_cli} --pid \"#{pid_file_path}\"})
63
+ expect(runner.build_command).to match(%r{#{custom_cli} --pid \"#{pid_file_path}\"})
64
64
  end
65
65
  end
66
66
 
67
- context "daemon" do
68
- it "should should not have daemon switch" do
69
- runner.build_command.should_not match(%r{ -d})
67
+ context "without options[:daemon]" do
68
+ it "doesn't have daemon switch" do
69
+ expect(runner.build_command).not_to match(%r{ -d})
70
70
  end
71
71
  end
72
72
 
73
- context "no daemon" do
73
+ context "with options[:daemon]" do
74
74
  let(:options) { default_options.merge(:daemon => true) }
75
- it "should have a daemon switch" do
76
- runner.build_command.should match(%r{ -d})
75
+ it "has a daemon switch" do
76
+ expect(runner.build_command).to match(%r{ -d})
77
77
  end
78
78
  end
79
79
 
80
- context "development" do
81
- it "should have environment switch to development" do
82
- runner.build_command.should match(%r{ -e development})
80
+ context "without options[:env]" do
81
+ it "has environment switch to development" do
82
+ expect(runner.build_command).to match(%r{ -e development})
83
83
  end
84
84
  end
85
85
 
86
- context "test" do
86
+ context "with options[:environment] as test" do
87
87
  let(:options) { default_options.merge(:environment => 'test') }
88
- it "should have environment switch to test" do
89
- runner.build_command.should match(%r{ -e test})
88
+ it "has environment switch to test" do
89
+ expect(runner.build_command).to match(%r{ -e test})
90
90
  end
91
91
  end
92
92
 
93
- context 'debugger' do
93
+ context 'with options[:debugger]' do
94
94
  let(:options) { default_options.merge(:debugger => true) }
95
95
 
96
- it "should have a debugger switch" do
97
- runner.build_command.should match(%r{ -u})
96
+ it "has a debugger switch" do
97
+ expect(runner.build_command).to match(%r{ -u})
98
98
  end
99
99
  end
100
100
 
101
- context 'custom server' do
101
+ context 'with options[:server] as thin' do
102
102
  let(:options) { default_options.merge(:server => 'thin') }
103
103
 
104
- it "should have the server name" do
105
- runner.build_command.should match(%r{thin})
104
+ it "has the server name thin" do
105
+ expect(runner.build_command).to match(%r{thin})
106
106
  end
107
107
  end
108
108
 
109
- context "no pid_file" do
110
- it "should use default pid_file" do
109
+ context "without options[:pid_file]" do
110
+ it "uses default pid_file" do
111
111
  pid_file_path = File.expand_path "tmp/pids/development.pid"
112
- runner.build_command.should match(%r{ --pid \"#{pid_file_path}\"})
112
+ expect(runner.build_command).to match(%r{ --pid \"#{pid_file_path}\"})
113
113
  end
114
114
  end
115
115
 
116
- context "custom pid_file" do
116
+ context "with options[:pid_file]" do
117
117
  let(:custom_pid_file) { "tmp/pids/rails_dev.pid" }
118
118
  let(:options) { default_options.merge(:pid_file => custom_pid_file) }
119
119
 
120
- it "should use custom pid_file" do
120
+ it "uses customized pid_file" do
121
121
  pid_file_path = File.expand_path custom_pid_file
122
- runner.build_command.should match(%r{ --pid \"#{pid_file_path}\"})
122
+ expect(runner.build_command).to match(%r{ --pid \"#{pid_file_path}\"})
123
123
  end
124
124
  end
125
125
 
126
- context "zeus enabled" do
126
+ context "with options[:zeus]" do
127
127
  let(:options) { default_options.merge(:zeus => true) }
128
- it "should have zeus in command" do
129
- runner.build_command.should match(%r{zeus server })
128
+ it "has zeus" do
129
+ expect(runner.build_command).to match(%r{zeus server })
130
130
  end
131
131
 
132
- context "custom zeus plan" do
132
+ context "with options[:zeus_plan]" do
133
133
  let(:options) { default_options.merge(:zeus => true, :zeus_plan => 'test_server') }
134
- it "should use custom zeus plan" do
135
- runner.build_command.should match(%r{zeus test_server})
134
+ it "uses customized zeus plan" do
135
+ expect(runner.build_command).to match(%r{zeus test_server})
136
136
  end
137
137
 
138
- context "custom server" do
138
+ context "with options[:server]" do
139
139
  let(:options) { default_options.merge(:zeus => true, :zeus_plan => 'test_server', :server => 'thin') }
140
- it "should use custom server" do
141
- runner.build_command.should match(%r{zeus test_server .* thin})
140
+ it "uses customized server" do
141
+ expect(runner.build_command).to match(%r{zeus test_server .* thin})
142
142
  end
143
143
  end
144
144
  end
145
145
  end
146
146
 
147
- context "zeus disabled" do
148
- it "should not have zeus in command" do
149
- runner.build_command.should_not match(%r{zeus server })
147
+ context "without options[:zeus]" do
148
+ it "doesn't have zeus" do
149
+ expect(runner.build_command).to_not match(%r{zeus server })
150
150
  end
151
151
 
152
152
  let(:options) { default_options.merge(:zeus_plan => 'test_server') }
153
- it "should have no effect of command" do
154
- runner.build_command.should_not match(%r{test_server})
153
+ it "doesnt' have test_server" do
154
+ expect(runner.build_command).to_not match(%r{test_server})
155
155
  end
156
156
  end
157
157
 
158
- context 'custom rails root' do
158
+ context 'with options[:root]' do
159
159
  let(:options) { default_options.merge(:root => 'spec/dummy') }
160
160
 
161
- it "should have a cd with the custom rails root" do
162
- runner.build_command.should match(%r{cd .*/spec/dummy\" &&})
161
+ it "has `cd` command with customized rails root" do
162
+ expect(runner.build_command).to match(%r{cd .*/spec/dummy\" &&})
163
163
  end
164
164
  end
165
165
  end
166
166
 
167
167
  describe '#environment' do
168
- it "defaults RAILS_ENV to development" do
169
- runner.environment["RAILS_ENV"].should == "development"
168
+ it "sets RAILS_ENV to development" do
169
+ expect(runner.environment["RAILS_ENV"]).to eq "development"
170
170
  end
171
171
 
172
- context "with options[:environment]" do
173
- let(:options) { default_options.merge(:environment => 'bob') }
172
+ context "with options[:environment] as test" do
173
+ let(:options) { default_options.merge(:environment => 'test') }
174
174
 
175
- it "defaults RAILS_ENV to nil" do
176
- runner.environment["RAILS_ENV"].should == "bob"
175
+ it "sets RAILS_ENV to test" do
176
+ expect(runner.environment["RAILS_ENV"]).to eq "test"
177
177
  end
178
178
 
179
- context "zeus enabled" do
179
+ context "with options[:zeus]" do
180
180
  let(:options) { default_options.merge(:zeus => true) }
181
181
 
182
- it "should set RAILS_ENV to nil" do
183
- runner.environment["RAILS_ENV"].should be_nil
182
+ it "sets RAILS_ENV to nil" do
183
+ expect(runner.environment["RAILS_ENV"]).to be nil
184
184
  end
185
185
  end
186
186
  end
187
187
  end
188
188
 
189
+ describe '#run_rails_command' do
190
+ before do
191
+ @bundler_env = ENV['BUNDLE_GEMFILE']
192
+ stub(runner).build_command.returns("printenv BUNDLE_GEMFILE > /dev/null")
193
+ end
194
+ after do
195
+ ENV['BUNDLE_GEMFILE'] = @bundler_env
196
+ end
197
+
198
+ shared_examples "inside of bundler" do
199
+ it 'runs rails inside of bundler' do
200
+ expect(runner.send(:run_rails_command!)).to be true
201
+ end
202
+ end
203
+
204
+ shared_examples "outside of bundler" do
205
+ it 'runs rails outside of bundler' do
206
+ expect(runner.send(:run_rails_command!)).to be false
207
+ end
208
+ end
209
+
210
+ context 'when guard-rails is outside of bundler' do
211
+ before do
212
+ ENV['BUNDLE_GEMFILE'] = 'Gemfile'
213
+ end
214
+
215
+ context 'with default env' do
216
+ it_behaves_like "inside of bundler"
217
+ end
218
+
219
+ context 'with zeus' do
220
+ let(:options) { default_options.merge(:zeus => true) }
221
+ it_behaves_like "outside of bundler"
222
+ end
223
+
224
+ context 'with CLI' do
225
+ let(:custom_cli) { 'custom_CLI_command' }
226
+ let(:options) { default_options.merge(:CLI => custom_cli) }
227
+ it_behaves_like "outside of bundler"
228
+ end
229
+ end
230
+
231
+ context 'when guard-rails is outside of bundler' do
232
+ before do
233
+ ENV['BUNDLE_GEMFILE'] = nil
234
+ end
235
+
236
+ context 'with default env' do
237
+ it_behaves_like "outside of bundler"
238
+ end
239
+
240
+ context 'with zeus' do
241
+ let(:options) { default_options.merge(:zeus => true) }
242
+ it_behaves_like "outside of bundler"
243
+ end
244
+
245
+ context 'with CLI' do
246
+ let(:custom_cli) { 'custom_CLI_command' }
247
+ let(:options) { default_options.merge(:CLI => custom_cli) }
248
+ it_behaves_like "outside of bundler"
249
+ end
250
+ end
251
+ end
252
+
189
253
  describe '#start' do
190
- let(:kill_expectation) { runner.expects(:kill_unmanaged_pid!) }
191
- let(:pid_stub) { runner.stubs(:has_pid?) }
254
+ let(:kill_expectation) { mock(runner).kill_unmanaged_pid! }
255
+ let(:pid_stub) { stub(runner).has_pid? }
192
256
 
193
257
  before do
194
- runner.expects(:run_rails_command!).once
258
+ mock(runner).run_rails_command!.once
195
259
  end
196
260
 
197
- context 'do not force run' do
261
+ context 'without options[:force_run]' do
198
262
  before do
199
263
  pid_stub.returns(true)
200
264
  kill_expectation.never
201
- runner.expects(:wait_for_pid_action).never
265
+ mock(runner).wait_for_pid_action.never
202
266
  end
203
267
 
204
- it "should act properly" do
205
- runner.start.should be_true
268
+ it "starts as normal" do
269
+ expect(runner.start).to be true
206
270
  end
207
271
  end
208
272
 
209
- context 'force run' do
273
+ context 'with options[:force_run]' do
210
274
  let(:options) { default_options.merge(:force_run => true) }
211
275
 
212
276
  before do
213
277
  pid_stub.returns(true)
214
278
  kill_expectation.once
215
- runner.expects(:wait_for_pid_action).never
279
+ mock(runner).wait_for_pid_action.never
216
280
  end
217
281
 
218
- it "should act properly" do
219
- runner.start.should be_true
282
+ it "starts as normal" do
283
+ expect(runner.start).to be true
220
284
  end
221
285
  end
222
286
 
223
- context "don't write the pid" do
287
+ context "doesn't write the pid" do
224
288
  before do
225
289
  pid_stub.returns(false)
226
290
  kill_expectation.never
227
- runner.expects(:wait_for_pid_action).times(Guard::RailsRunner::MAX_WAIT_COUNT)
291
+ mock(runner).wait_for_pid_action.times(Guard::RailsRunner::MAX_WAIT_COUNT)
228
292
  end
229
293
 
230
- it "should act properly" do
231
- runner.start.should be_false
294
+ it "doesn't start" do
295
+ expect(runner.start).to be false
232
296
  end
233
297
  end
234
298
  end
@@ -237,8 +301,8 @@ describe Guard::RailsRunner do
237
301
  let(:timeout) { 30 }
238
302
  let(:options) { default_options.merge(:timeout => timeout) }
239
303
 
240
- it "should adjust the sleep time as necessary" do
241
- runner.sleep_time.should == (timeout.to_f / Guard::RailsRunner::MAX_WAIT_COUNT.to_f)
304
+ it "adjusts the sleep time as necessary" do
305
+ expect(runner.sleep_time).to eq (timeout.to_f / Guard::RailsRunner::MAX_WAIT_COUNT.to_f)
242
306
  end
243
307
  end
244
308
  end
@@ -5,30 +5,30 @@ describe Guard::Rails do
5
5
  let(:guard) { Guard::Rails.new(options) }
6
6
  let(:options) { {} }
7
7
 
8
- describe '#initialize' do
9
- it "should initialize with options" do
8
+ describe "#initialize" do
9
+ it "initializes with options" do
10
10
  guard
11
11
 
12
- guard.runner.options[:port].should == 3000
12
+ expect(guard.runner.options[:port]).to eq 3000
13
13
  end
14
14
  end
15
15
 
16
- describe '#start' do
17
- let(:ui_expectation) { Guard::UI.expects(:info).with(regexp_matches(/#{Guard::Rails::DEFAULT_OPTIONS[:port]}/)) }
16
+ describe "#start" do
17
+ let(:ui_expectation) { mock(Guard::UI).info.with(/#{Guard::Rails::DEFAULT_OPTIONS[:port]}/) }
18
18
 
19
- context 'start on start' do
20
- it "should show the right message and run startup" do
21
- guard.expects(:reload).once
19
+ context "starts when Guard starts" do
20
+ it "shows the right message and runs startup" do
21
+ mock(guard).reload.with("start").once
22
22
  ui_expectation
23
23
  guard.start
24
24
  end
25
25
  end
26
26
 
27
- context 'no start on start' do
27
+ context "doesn't start when Guard starts" do
28
28
  let(:options) { { :start_on_start => false } }
29
29
 
30
- it "should show the right message and not run startup" do
31
- guard.expects(:reload).never
30
+ it "shows the right message and doesn't run startup" do
31
+ mock(guard).reload.never
32
32
  ui_expectation
33
33
  guard.start
34
34
  end
@@ -39,55 +39,53 @@ describe Guard::Rails do
39
39
  let(:pid) { '12345' }
40
40
 
41
41
  before do
42
- Guard::RailsRunner.any_instance.stubs(:pid).returns(pid)
42
+ any_instance_of(Guard::RailsRunner, pid: pid)
43
43
  end
44
44
 
45
- let(:runner_stub) { Guard::RailsRunner.any_instance.stubs(:restart) }
46
-
47
45
  context 'at start' do
48
46
  before do
49
- Guard::UI.expects(:info).with('Starting Rails...')
50
- Guard::Notifier.expects(:notify).with(regexp_matches(/Rails starting/), has_entry(:image => :pending))
51
- runner_stub.returns(true)
47
+ mock(Guard::UI).info.with('Starting Rails...')
48
+ mock(Guard::Notifier).notify.with(/Rails starting/, hash_including(:image => :pending))
49
+ any_instance_of(Guard::RailsRunner, restart: true)
52
50
  end
53
51
 
54
- it "should start and show the pid file" do
55
- Guard::UI.expects(:info).with(regexp_matches(/#{pid}/))
56
- Guard::Notifier.expects(:notify).with(regexp_matches(/Rails started/), has_entry(:image => :success))
52
+ it "starts and shows the pid file" do
53
+ mock(Guard::UI).info.with(/#{pid}/)
54
+ mock(Guard::Notifier).notify.with(/Rails started/, hash_including(:image => :success))
57
55
 
58
56
  guard.reload("start")
59
57
  end
60
58
  end
61
59
 
62
- context 'after start' do
60
+ context "after start" do
63
61
  before do
64
- Guard::RailsRunner.any_instance.stubs(:pid).returns(pid)
65
- Guard::UI.expects(:info).with('Restarting Rails...')
66
- Guard::Notifier.expects(:notify).with(regexp_matches(/Rails restarting/), has_entry(:image => :pending))
62
+ any_instance_of(Guard::RailsRunner, pid: pid)
63
+ mock(Guard::UI).info.with('Restarting Rails...')
64
+ mock(Guard::Notifier).notify.with(/Rails restarting/, hash_including(:image => :pending))
67
65
  end
68
66
 
69
- context 'with pid file' do
67
+ context "with pid file" do
70
68
  before do
71
- runner_stub.returns(true)
69
+ any_instance_of(Guard::RailsRunner, restart: true)
72
70
  end
73
71
 
74
- it "should restart and show the pid file" do
75
- Guard::UI.expects(:info).with(regexp_matches(/#{pid}/))
76
- Guard::Notifier.expects(:notify).with(regexp_matches(/Rails restarted/), has_entry(:image => :success))
72
+ it "restarts and shows the pid file" do
73
+ mock(Guard::UI).info.with(/#{pid}/)
74
+ mock(Guard::Notifier).notify.with(/Rails restarted/, hash_including(:image => :success))
77
75
 
78
76
  guard.reload
79
77
  end
80
78
  end
81
79
 
82
- context 'no pid file' do
80
+ context "without pid file" do
83
81
  before do
84
- runner_stub.returns(false)
82
+ any_instance_of(Guard::RailsRunner, restart: false)
85
83
  end
86
84
 
87
- it "should restart and show the pid file" do
88
- Guard::UI.expects(:info).with(regexp_matches(/#{pid}/)).never
89
- Guard::UI.expects(:info).with(regexp_matches(/Rails NOT restarted/))
90
- Guard::Notifier.expects(:notify).with(regexp_matches(/Rails NOT restarted/), has_entry(:image => :failed))
85
+ it "restarts and shows the pid file" do
86
+ mock(Guard::UI).info.with(/#{pid}/).never
87
+ mock(Guard::UI).info.with(/Rails NOT restarted/)
88
+ mock(Guard::Notifier).notify.with(/Rails NOT restarted/, hash_including(:image => :failed))
91
89
 
92
90
  guard.reload
93
91
  end
@@ -95,16 +93,16 @@ describe Guard::Rails do
95
93
  end
96
94
  end
97
95
 
98
- describe '#stop' do
99
- it "should stop correctly" do
100
- Guard::Notifier.expects(:notify).with('Until next time...', anything)
96
+ describe "#stop" do
97
+ it "stops with correct message" do
98
+ mock(Guard::Notifier).notify.with('Until next time...', anything)
101
99
  guard.stop
102
100
  end
103
101
  end
104
102
 
105
103
  describe '#run_on_change' do
106
- it "should reload on change" do
107
- guard.expects(:reload).once
104
+ it "reloads on change" do
105
+ mock(guard).reload.once
108
106
  guard.run_on_change([])
109
107
  end
110
108
  end
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,6 @@
1
- require 'mocha/api'
1
+ require "codeclimate-test-reporter"
2
+ CodeClimate::TestReporter.start
2
3
 
3
4
  RSpec.configure do |c|
4
- c.mock_with :mocha
5
+ c.mock_with :rr
5
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Bintz
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-17 00:00:00.000000000 Z
12
+ date: 2014-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: guard
@@ -31,16 +31,16 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '2.6'
34
+ version: '3.0'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '2.6'
41
+ version: '3.0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: mocha
43
+ name: rr
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
@@ -53,6 +53,20 @@ dependencies:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
55
  version: '1.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: fakefs
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.5'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.5'
56
70
  - !ruby/object:Gem::Dependency
57
71
  name: version
58
72
  requirement: !ruby/object:Gem::Requirement
@@ -104,14 +118,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
118
  requirements:
105
119
  - - ">="
106
120
  - !ruby/object:Gem::Version
107
- version: '0'
121
+ version: '1.9'
108
122
  required_rubygems_version: !ruby/object:Gem::Requirement
109
123
  requirements:
110
124
  - - ">="
111
125
  - !ruby/object:Gem::Version
112
126
  version: '0'
113
127
  requirements: []
114
- rubyforge_project: guard-rails
128
+ rubyforge_project:
115
129
  rubygems_version: 2.2.2
116
130
  signing_key:
117
131
  specification_version: 4