guard-rspec 2.4.1 → 2.5.0

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.
data/README.md CHANGED
@@ -107,6 +107,12 @@ guard 'rspec', :spring => true do
107
107
  # ...
108
108
  end
109
109
  ```
110
+ [ParallelTests](https://github.com/grosser/parallel_tests) is supported, but you must enable it:
111
+ ``` ruby
112
+ guard 'rspec', :parallel => true, :parallel_cli => '-n 2' do
113
+ # ...
114
+ end
115
+ ```
110
116
 
111
117
  Former `:color`, `:drb`, `:fail_fast` and `:formatter` options are deprecated and have no effect anymore.
112
118
 
@@ -127,6 +133,8 @@ Former `:color`, `:drb`, `:fail_fast` and `:formatter` options are deprecated an
127
133
  :turnip => true # enable turnip support; default: false
128
134
  :zeus => true # enable zeus support; default: false
129
135
  :focus_on_failed => false # focus on the first 10 failed specs first, rerun till they pass
136
+ :parallel => true # run all specs in parallel using [ParallelTests](https://github.com/grosser/parallel_tests) gem, default: false
137
+ :parallel_cli => "-n 2" # pass arbitrary Parallel Tests arguments, default: ""
130
138
  ```
131
139
 
132
140
  You can also use a custom binstubs directory using `:binstubs => 'some-dir'`.
@@ -24,7 +24,7 @@ module Guard
24
24
 
25
25
  unless ENV['SPEC_OPTS'].nil?
26
26
  UI.warning "The SPEC_OPTS environment variable is present. This can conflict with guard-rspec, particularly notifications."
27
- end
27
+ end
28
28
 
29
29
  deprecations_warnings
30
30
  end
@@ -45,7 +45,8 @@ module Guard
45
45
  end
46
46
 
47
47
  def rspec_executable
48
- @rspec_executable ||= (binstubs? && !executable_prefix?) ? "#{binstubs}/rspec" : "rspec"
48
+ command = parallel? ? 'parallel_rspec' : 'rspec'
49
+ @rspec_executable ||= (binstubs? && !executable_prefix?) ? "#{binstubs}/#{command}" : command
49
50
  end
50
51
 
51
52
  def failure_exit_code_supported?
@@ -92,6 +93,21 @@ module Guard
92
93
  arg_parts.compact.join(' ')
93
94
  end
94
95
 
96
+ def parallel_rspec_arguments(paths, options)
97
+ arg_parts = []
98
+ arg_parts << options[:parallel_cli]
99
+ if @options[:notification]
100
+ arg_parts << parsed_or_default_formatter unless options[:cli] =~ formatter_regex
101
+ arg_parts << "-r #{File.dirname(__FILE__)}/formatter.rb"
102
+ arg_parts << "-f Guard::RSpec::Formatter"
103
+ end
104
+ arg_parts << "--failure-exit-code #{FAILURE_EXIT_CODE}" if failure_exit_code_supported?
105
+ #arg_parts << "-r turnip/rspec" if @options[:turnip]
106
+ arg_parts << paths.join(' ')
107
+
108
+ arg_parts.compact.join(' ')
109
+ end
110
+
95
111
  def rspec_command(paths, options)
96
112
  cmd_parts = []
97
113
  cmd_parts << environment_variables
@@ -99,7 +115,8 @@ module Guard
99
115
  cmd_parts << "bundle exec" if bundle_exec?
100
116
  cmd_parts << executable_prefix if executable_prefix?
101
117
  cmd_parts << rspec_executable
102
- cmd_parts << rspec_arguments(paths, options)
118
+ cmd_parts << rspec_arguments(paths, options) if !parallel?
119
+ cmd_parts << parallel_rspec_arguments(paths, options) if parallel?
103
120
  cmd_parts.compact.join(' ')
104
121
  end
105
122
 
@@ -182,9 +199,9 @@ module Guard
182
199
 
183
200
  def executable_prefix
184
201
  prefix = binstubs? ? "#{binstubs}/" : ''
185
- if zeus?
202
+ if zeus? && !parallel?
186
203
  prefix << 'zeus'
187
- elsif spring?
204
+ elsif spring? && !parallel?
188
205
  prefix << 'spring'
189
206
  else
190
207
  prefix = nil
@@ -196,6 +213,10 @@ module Guard
196
213
  @options[:zeus] || false
197
214
  end
198
215
 
216
+ def parallel?
217
+ @options[:parallel] || false
218
+ end
219
+
199
220
  def spring?
200
221
  @options[:spring] || false
201
222
  end
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  module RSpecVersion
3
- VERSION = "2.4.1"
3
+ VERSION = "2.5.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -2,63 +2,63 @@
2
2
  name: guard-rspec
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.4.1
5
+ version: 2.5.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Thibaud Guillaume-Gentil
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-19 00:00:00.000000000 Z
12
+ date: 2013-03-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: guard
16
- type: :runtime
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ! '>='
21
19
  - !ruby/object:Gem::Version
22
20
  version: '1.1'
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
21
  none: false
22
+ version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.1'
27
+ none: false
28
+ prerelease: false
29
+ type: :runtime
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rspec
32
- type: :runtime
33
32
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
33
  requirements:
36
34
  - - ~>
37
35
  - !ruby/object:Gem::Version
38
36
  version: '2.11'
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
37
  none: false
38
+ version_requirements: !ruby/object:Gem::Requirement
42
39
  requirements:
43
40
  - - ~>
44
41
  - !ruby/object:Gem::Version
45
42
  version: '2.11'
43
+ none: false
44
+ prerelease: false
45
+ type: :runtime
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: bundler
48
- type: :development
49
48
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
49
  requirements:
52
50
  - - ~>
53
51
  - !ruby/object:Gem::Version
54
52
  version: '1.1'
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
53
  none: false
54
+ version_requirements: !ruby/object:Gem::Requirement
58
55
  requirements:
59
56
  - - ~>
60
57
  - !ruby/object:Gem::Version
61
58
  version: '1.1'
59
+ none: false
60
+ prerelease: false
61
+ type: :development
62
62
  description: Guard::RSpec automatically run your specs (much like autotest).
63
63
  email:
64
64
  - thibaud@thibaud.me
@@ -81,20 +81,20 @@ rdoc_options: []
81
81
  require_paths:
82
82
  - lib
83
83
  required_ruby_version: !ruby/object:Gem::Requirement
84
- none: false
85
84
  requirements:
86
85
  - - ! '>='
87
86
  - !ruby/object:Gem::Version
88
87
  version: '0'
89
- required_rubygems_version: !ruby/object:Gem::Requirement
90
88
  none: false
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
90
  requirements:
92
91
  - - ! '>='
93
92
  - !ruby/object:Gem::Version
94
93
  version: 1.3.6
94
+ none: false
95
95
  requirements: []
96
96
  rubyforge_project: guard-rspec
97
- rubygems_version: 1.8.23
97
+ rubygems_version: 1.8.25
98
98
  signing_key:
99
99
  specification_version: 3
100
100
  summary: Guard gem for RSpec