guard-rspec 4.6.0 → 4.6.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: da3d682ea54facc503739cd4d094710f204117da
4
- data.tar.gz: 7222b1f22d4650eeb50b510e6ddd0b653d72c145
3
+ metadata.gz: d6f8f0ec11addb557bcea8e0b4e67b2f53bc9fc0
4
+ data.tar.gz: 72f89cda0c8952689eac3466d5450e458d3ecbde
5
5
  SHA512:
6
- metadata.gz: 069b0a96a591b25139fff82402d4a48dff213ac9b4412ed570aad6ac92bae197808217786552b1b91785f91c0bb16e33c21bda3f7dacdfa33cd52439e3f3855f
7
- data.tar.gz: d6d147aca928c4c5bc7c68f7b2cf40ee0eeeb8ff72ef63a5d1bb544b23ce401d6615f6ac039b51dfbd30840fc3c07c78f2eb54f818ae99e66f2f4fa5ebcec5ac
6
+ metadata.gz: f87137e2042acd5bd024d0d094c020411dc55c9b68c7edec9b87c8fb7f5238445af78f65e0041653137d6e6187e1f1d74b4eb13066b687129258a1d18dc5c934
7
+ data.tar.gz: 9d6b60cdb428ac5f33a0a8ebdc12d33f053bfb2184c6c56200d18cc48137aab79e28ce3fddf5ed2913efaca45c00249fa80e4f942c9a45569b8f5bec34ac1de3
data/README.md CHANGED
@@ -109,6 +109,33 @@ guard :rspec, cmd: 'rspec -f html -o ./tmp/spec_results.html', launchy: './tmp/s
109
109
  end
110
110
  ```
111
111
 
112
+ ### Integration with Zeus
113
+
114
+ First, know that Guard::Zeus also generates a Guardfile template with RSpec commands - if you prefer Guard::RSpec, you may want to keep Guard::Zeus, but without the RSpec running commands (so you can manage the Guard::Zeus server instead of running it manually).
115
+
116
+ Second, since Guard::RSpec 4.6.x, the output file name is passed using environment variables - but Zeus doesn't pass these when rerunning tests, so you get this error: #334
117
+
118
+ The workaround is to create a custom Zeus plan:
119
+
120
+ 1. `zeus init`
121
+ 2. edit `custom_plan.rb` to contain the following:
122
+
123
+ ```ruby
124
+ require 'zeus/rails'
125
+
126
+ class CustomPlan < Zeus::Rails
127
+ def test(*args)
128
+ ENV['GUARD_RSPEC_RESULTS_FILE'] = 'tmp/guard_rspec_results.txt' # Guard::RSpec::Runner::TEMPORARY_FILE_PATH
129
+ super
130
+ end
131
+ end
132
+
133
+ Zeus.plan = CustomPlan.new
134
+ ```
135
+
136
+ And that's it. (I'd like things to work without this, but I don't know how.)
137
+
138
+
112
139
  ### Using parallel_tests
113
140
 
114
141
  parallel_tests has a `-o` option for passing RSpec options, and here's a trick to make it work with Guard::RSpec:
@@ -1,3 +1,5 @@
1
+ require "guard/rspec_defaults"
2
+
1
3
  require "guard/rspec/inspectors/factory"
2
4
  require "guard/rspec/command"
3
5
  require "guard/rspec/notifier"
@@ -80,7 +82,7 @@ module Guard
80
82
  end
81
83
 
82
84
  def _results_file(results_file, chdir)
83
- results_file ||= TEMPORARY_FILE_PATH
85
+ results_file ||= RSpecDefaults::TEMPORARY_FILE_PATH
84
86
  return results_file unless Pathname(results_file).relative?
85
87
  chdir ? File.join(chdir, results_file) : results_file
86
88
  end
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  module RSpecVersion
3
- VERSION = "4.6.0"
3
+ VERSION = "4.6.1"
4
4
  end
5
5
  end
@@ -0,0 +1,5 @@
1
+ module Guard
2
+ class RSpecDefaults
3
+ TEMPORARY_FILE_PATH = "tmp/rspec_guard_result"
4
+ end
5
+ end
@@ -7,8 +7,16 @@ require "fileutils"
7
7
  require "rspec"
8
8
  require "rspec/core/formatters/base_formatter"
9
9
 
10
+ require "guard/rspec_defaults"
11
+
10
12
  module Guard
11
13
  class RSpecFormatter < ::RSpec::Core::Formatters::BaseFormatter
14
+ WIKI_ENV_WARN_URL =
15
+ "https://github.com/guard/guard-rspec/wiki/Warning:-no-environment"
16
+
17
+ NO_ENV_WARNING_MSG = "no environment passed - see #{WIKI_ENV_WARN_URL}"
18
+ NO_RESULTS_VALUE_MSG = ":results_file value unknown (using defaults)"
19
+
12
20
  def self.rspec_3?
13
21
  ::RSpec::Core::Version::STRING.split(".").first == "3"
14
22
  end
@@ -110,7 +118,12 @@ module Guard
110
118
 
111
119
  def _results_file
112
120
  path = ENV["GUARD_RSPEC_RESULTS_FILE"]
113
- fail "Fatal: No output file given for Guard::RSpec formatter!" unless path
121
+ if path.nil?
122
+ STDERR.puts "Guard::RSpec: Warning: #{NO_ENV_WARNING_MSG}\n" \
123
+ "Guard::RSpec: Warning: #{NO_RESULTS_VALUE_MSG}"
124
+ path = RSpecDefaults::TEMPORARY_FILE_PATH
125
+ end
126
+
114
127
  File.expand_path(path)
115
128
  end
116
129
  end
@@ -86,6 +86,35 @@ RSpec.describe Guard::RSpecFormatter do
86
86
  end.to raise_error(TypeError, "foo")
87
87
  end
88
88
  end
89
+
90
+ context "when no env is passed" do
91
+ let(:file) { File.join(Dir.pwd, "tmp/rspec_guard_result") }
92
+
93
+ before do
94
+ ENV["GUARD_RSPEC_RESULTS_FILE"] = nil
95
+
96
+ allow(FileUtils).to receive(:mkdir_p).
97
+ with(File.dirname(file)) {}
98
+
99
+ allow(File).to receive(:open).
100
+ with(file, "w") do |_, _, &block|
101
+ block.call writer
102
+ end
103
+ end
104
+
105
+ it "warns" do
106
+ expect(STDERR).to receive(:puts).with(/no environment/)
107
+ formatter.dump_summary(*example_dump_summary_args)
108
+ end
109
+
110
+ it "uses default file" do
111
+ expect(File).to receive(:open).
112
+ with(file, "w") do |_, _, &block|
113
+ block.call writer
114
+ end
115
+ formatter.dump_summary(*example_dump_summary_args)
116
+ end
117
+ end
89
118
  end
90
119
 
91
120
  context "with failures" do
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.6.0
4
+ version: 4.6.1
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: 2015-06-26 00:00:00.000000000 Z
11
+ date: 2015-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: guard
@@ -144,6 +144,7 @@ files:
144
144
  - lib/guard/rspec/runner.rb
145
145
  - lib/guard/rspec/templates/Guardfile
146
146
  - lib/guard/rspec/version.rb
147
+ - lib/guard/rspec_defaults.rb
147
148
  - lib/guard/rspec_formatter.rb
148
149
  - spec/lib/guard/rspec/command_spec.rb
149
150
  - spec/lib/guard/rspec/deprecator_spec.rb
@@ -181,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
182
  version: '0'
182
183
  requirements: []
183
184
  rubyforge_project:
184
- rubygems_version: 2.4.7
185
+ rubygems_version: 2.4.5
185
186
  signing_key:
186
187
  specification_version: 4
187
188
  summary: Guard gem for RSpec