guard-rspec 2.4.1 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
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