guard-rspec 4.7.1 → 4.7.2

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: b6163bfd9a274c88eefd7a84f1e1f815d1191b33
4
- data.tar.gz: 80deab415f449c74ec8b4f50589dae22f80ec021
3
+ metadata.gz: 918301c5591d32e57f968b46fe945cf4e5f6871d
4
+ data.tar.gz: 416877bc8284de1e6c44d200c2be36625dfc6829
5
5
  SHA512:
6
- metadata.gz: 1618cbb9b313aff920902dfd34780c12b076b627a6f287cd9b8ab38451a38ba532e1d1d3dd1ca5a34a6d8fee07394a256431806a9a67a7e1b8581ea7899e2daa
7
- data.tar.gz: dff4b7a5a92c25b42a5beda572ea707958fe2e2d173f2582838d4aa790d5fa8b64f1b330703738f8e7b301b75714655c2a59ec19d6e9dfc94e28107931e1c28d
6
+ metadata.gz: c7e36a93775573a76d509da8ed55307f0af64f8b6029bc04bbe8aff657d76731516f22fa1b371a3a5facadef0649181d661e0243bbb6de9d484eb8b03665de58
7
+ data.tar.gz: 5456241016e2fb4596f81bd17b26465e8e6457aa62aee18e227b47682b66e9c7ee79be30a23968fbd0979e53686e1ad32834f0ddf958ab7322a14018eccfa578
data/Gemfile CHANGED
@@ -15,10 +15,7 @@ else
15
15
  gemspec development_group: :gem_build_tools
16
16
  end
17
17
 
18
- # bundler + rake - always included
19
18
  group :gem_build_tools do
20
- gem "bundler", "~> 1.12", "< 2.0"
21
- gem "rake", "~> 11.1"
22
19
  end
23
20
 
24
21
  group :development do
@@ -26,7 +23,3 @@ group :development do
26
23
  gem "guard-rubocop", require: false
27
24
  gem "guard-compat", ">= 0.0.2", require: false
28
25
  end
29
-
30
- group :tool do
31
- gem "ruby_gntp", require: false
32
- end
data/README.md CHANGED
@@ -120,6 +120,11 @@ run_all: { cmd: 'custom rspec command', message: 'custom message' } # Custom opt
120
120
  title: 'My project' # Display a custom title for the notification, default: 'RSpec results'
121
121
  chdir: 'directory' # run rspec from within a given subdirectory (useful if project has separate specs for submodules)
122
122
  results_file: 'some/path' # use the given file for storing results (instead of default relative path)
123
+ bundler_env: :original_env # Specify which Bundler env to run the cmd under, default: :original_env
124
+ # Available values:
125
+ # :clean_env - old behavior, uses Bundler environment with all bundler-related variables removed. This is deprecated in bundler 1.12.x.
126
+ # :original_env (default) - uses Bundler environment present before Bundler was activated
127
+ # :inherit - runs inside the current environment
123
128
  ```
124
129
 
125
130
  ### Using Launchy to view rspec results
@@ -11,7 +11,8 @@ module Guard
11
11
  cmd_additional_args: nil,
12
12
  launchy: nil,
13
13
  notification: true,
14
- title: "RSpec results"
14
+ title: "RSpec results",
15
+ bundler_env: :original_env
15
16
  }.freeze
16
17
 
17
18
  class << self
@@ -6,12 +6,13 @@ module Guard
6
6
  class Failure < RuntimeError
7
7
  end
8
8
 
9
- attr_reader :results
9
+ attr_reader :results, :options
10
10
 
11
- def initialize(command, formatter_tmp_file)
11
+ def initialize(command, formatter_tmp_file, options = {})
12
12
  @command = command
13
13
  @formatter_tmp_file = formatter_tmp_file
14
14
  @results = nil
15
+ @options = options
15
16
 
16
17
  @exit_code = _run
17
18
  @results = _read_results
@@ -24,7 +25,7 @@ module Guard
24
25
  private
25
26
 
26
27
  def _run
27
- _without_bundler_env do
28
+ _with_desired_bundler_env do
28
29
  exit_code = _really_run
29
30
 
30
31
  msg = "Guard::RSpec: RSpec command %s exited with: %s"
@@ -65,11 +66,14 @@ module Guard
65
66
  File.delete(formatter_tmp_file) if File.exist?(formatter_tmp_file)
66
67
  end
67
68
 
68
- def _without_bundler_env
69
- if defined?(::Bundler)
69
+ def _with_desired_bundler_env
70
+ desired_bundler_env = options[:bundler_env]
71
+ if !defined?(::Bundler) || desired_bundler_env == :inherit
72
+ yield
73
+ elsif desired_bundler_env == :clean_env
70
74
  ::Bundler.with_clean_env { yield }
71
75
  else
72
- yield
76
+ ::Bundler.with_original_env { yield }
73
77
  end
74
78
  end
75
79
 
@@ -62,7 +62,7 @@ module Guard
62
62
  # TODO: add option to specify the file
63
63
  file = _results_file(options[:results_file], options[:chdir])
64
64
 
65
- process = RSpecProcess.new(cmd, file)
65
+ process = RSpecProcess.new(cmd, file, options)
66
66
  results = process.results
67
67
 
68
68
  inspector.failed(results.failed_paths)
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  module RSpecVersion
3
- VERSION = "4.7.1".freeze
3
+ VERSION = "4.7.2".freeze
4
4
  end
5
5
  end
@@ -111,5 +111,33 @@ RSpec.describe Guard::RSpec::RSpecProcess do
111
111
  end
112
112
  end
113
113
  end
114
+
115
+ context "with bundler_env option" do
116
+ it "runs without Bunder changes when :inherit" do
117
+ expect(Bundler).to_not receive(:with_clean_env)
118
+ expect(Bundler).to_not receive(:with_original_env)
119
+
120
+ described_class.new(cmd, file, bundler_env: :inherit)
121
+ end
122
+
123
+ it "runs on clean Bunder changes when :clean_env" do
124
+ expect(Bundler).to receive(:with_clean_env)
125
+
126
+ described_class.new(cmd, file, bundler_env: :clean_env)
127
+ end
128
+
129
+ it "runs on original Bunder changes when :original_env" do
130
+ expect(Bundler).to receive(:with_original_env)
131
+
132
+ described_class.new(cmd, file, bundler_env: :original_env)
133
+ end
134
+ end
135
+
136
+ context "without bundler_env option" do
137
+ it "runs on original Bunder" do
138
+ expect(Bundler).to receive(:with_original_env)
139
+ subject
140
+ end
141
+ end
114
142
  end
115
143
  end
@@ -218,7 +218,7 @@ RSpec.describe Guard::RSpec::Runner do
218
218
  let(:results_file) { File.join(Dir.pwd, "foobar.txt") }
219
219
  it "uses the given file" do
220
220
  expect(Guard::RSpec::RSpecProcess).to receive(:new).
221
- with(anything, results_file).and_return(process)
221
+ with(anything, results_file, options).and_return(process)
222
222
  runner.run(paths)
223
223
  end
224
224
  end
@@ -227,7 +227,7 @@ RSpec.describe Guard::RSpec::Runner do
227
227
  let(:results_file) { "/foo/foobar.txt" }
228
228
  it "uses the given path" do
229
229
  expect(Guard::RSpec::RSpecProcess).to receive(:new).
230
- with(anything, results_file).and_return(process)
230
+ with(anything, results_file, options).and_return(process)
231
231
  runner.run(paths)
232
232
  end
233
233
  end
@@ -243,7 +243,7 @@ RSpec.describe Guard::RSpec::Runner do
243
243
  it "uses a path relative to chdir" do
244
244
  expected = "/foo/bar/moduleA/foobar.txt"
245
245
  expect(Guard::RSpec::RSpecProcess).to receive(:new).
246
- with(anything, expected).and_return(process)
246
+ with(anything, expected, options).and_return(process)
247
247
  runner.run(paths)
248
248
  end
249
249
  end
@@ -252,7 +252,7 @@ RSpec.describe Guard::RSpec::Runner do
252
252
  let(:results_file) { "/foo/foobar.txt" }
253
253
  it "uses the full given path anyway" do
254
254
  expect(Guard::RSpec::RSpecProcess).to receive(:new).
255
- with(anything, results_file).and_return(process)
255
+ with(anything, results_file, options).and_return(process)
256
256
  runner.run(paths)
257
257
  end
258
258
  end
@@ -270,7 +270,7 @@ RSpec.describe Guard::RSpec::Runner do
270
270
  it "uses a path relative to chdir" do
271
271
  expected = File.join(Dir.pwd, "moduleA/foobar.txt")
272
272
  expect(Guard::RSpec::RSpecProcess).to receive(:new).
273
- with(anything, expected).and_return(process)
273
+ with(anything, expected, options).and_return(process)
274
274
  runner.run(paths)
275
275
  end
276
276
 
@@ -285,7 +285,7 @@ RSpec.describe Guard::RSpec::Runner do
285
285
  let(:results_file) { "/foo/foobar.txt" }
286
286
  it "uses the full given path anyway" do
287
287
  expect(Guard::RSpec::RSpecProcess).to receive(:new).
288
- with(anything, results_file).and_return(process)
288
+ with(anything, results_file, options).and_return(process)
289
289
  runner.run(paths)
290
290
  end
291
291
  end
@@ -296,8 +296,9 @@ RSpec.describe Guard::RSpec::Runner do
296
296
  context "with no custom results file" do
297
297
  let(:options) { { cmd: "rspec" } }
298
298
  it "uses the default" do
299
+ expected_params = [anything, %r{/tmp/rspec_guard_result$}, options]
299
300
  expect(Guard::RSpec::RSpecProcess).to receive(:new).
300
- with(anything, %r{/tmp/rspec_guard_result$}).and_return(process)
301
+ with(*expected_params).and_return(process)
301
302
  runner.run(paths)
302
303
  end
303
304
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.1
4
+ version: 4.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thibaud Guillaume-Gentil
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-31 00:00:00.000000000 Z
11
+ date: 2016-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: guard