rubocop-rspec 1.10.0 → 1.11.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: afa52f47ad386fe20a2a338ff9da7c6a032c385b
4
- data.tar.gz: 07143368c4d5e201d12bfba8379e5c2c79bcba99
3
+ metadata.gz: fda044631502561746af13188e9d7217ef83f8fb
4
+ data.tar.gz: d021f893b44704291ff69433019a9798b50fe82e
5
5
  SHA512:
6
- metadata.gz: 89dfa9c530533694d03d670112ae870f9ba626875bcff32bb9ab4c708f393e99e1e4eb5562adb5ad2e8231c5366594fabbd431a8ec758ec856491fa747f84b66
7
- data.tar.gz: 9517b60ae000d18800f11bb8e579d5889883eff511975ce4ff77a56e72cc0450e9f998b93694c3c90d9e47c9546aebb0fe8296fdbcfa4048e16cfddfc7fda5b1
6
+ metadata.gz: 8d804e069e562fa9af39669b2f39b6d8fa81e1ce4778bba2dfbf999dd1afc583475e1bd3d296e1ce79cf40bf04ad42d09468d9b4b0eb6dd10fced565e7e970b3
7
+ data.tar.gz: 8d14f57b6eb8437b68a7f92acea42a687a7515e1793da6d11485e3c97140571b6741697fad84e6763be1f31fad1d897b88e8dd5131d0286e92fe05cd4c77717a
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Master (unreleased)
4
4
 
5
+ ## 1.11.0 (2017-02-16)
6
+
7
+ * Add `AroundBlock` cop. ([@Darhazer][])
8
+ * Add `EnforcedStyle` configuration for `RSpec/DescribedClass` cop. ([@Darhazer][])
9
+ * Fix false positive for `RSpec/RepeatedExample` cop. ([@redross][])
10
+
5
11
  ## 1.10.0 (2017-01-15)
6
12
 
7
13
  * Fix false negative for `RSpec/MessageSpies` cop. ([@onk][])
@@ -172,3 +178,5 @@
172
178
  [@jeffreyc]: https://github.com/jeffreyc
173
179
  [@clupprich]: https://github.com/clupprich
174
180
  [@onk]: https://github.com/onk
181
+ [@Darhazer]: https://github.com/Darhazer
182
+ [@redross]: https://github.com/redross
data/config/default.yml CHANGED
@@ -9,6 +9,10 @@ RSpec/AnyInstance:
9
9
  Description: Check that instances are not being stubbed globally.
10
10
  Enabled: true
11
11
 
12
+ RSpec/AroundBlock:
13
+ Description: Checks that around blocks actually run the test.
14
+ Enabled: true
15
+
12
16
  RSpec/BeEql:
13
17
  Description: Check for expectations where `be(...)` can replace `eql(...)`.
14
18
  Enabled: true
@@ -21,6 +25,10 @@ RSpec/DescribedClass:
21
25
  Description: Checks that tests use `described_class`.
22
26
  SkipBlocks: false
23
27
  Enabled: true
28
+ EnforcedStyle: described_class
29
+ SupportedStyles:
30
+ - described_class
31
+ - explicit
24
32
 
25
33
  RSpec/DescribeMethod:
26
34
  Description: Checks that the second argument to `describe` specifies a method.
data/lib/rubocop-rspec.rb CHANGED
@@ -21,6 +21,7 @@ RuboCop::RSpec::Inject.defaults!
21
21
 
22
22
  # cops
23
23
  require 'rubocop/cop/rspec/any_instance'
24
+ require 'rubocop/cop/rspec/around_block'
24
25
  require 'rubocop/cop/rspec/be_eql'
25
26
  require 'rubocop/cop/rspec/describe_class'
26
27
  require 'rubocop/cop/rspec/describe_method'
@@ -0,0 +1,78 @@
1
+ module RuboCop
2
+ module Cop
3
+ module RSpec
4
+ # Checks that around blocks actually run the test.
5
+ #
6
+ # @example
7
+ # # bad
8
+ # around do
9
+ # some_method
10
+ # end
11
+ #
12
+ # around do |test|
13
+ # some_method
14
+ # end
15
+ #
16
+ # # good
17
+ # around do |test|
18
+ # some_method
19
+ # test.call
20
+ # end
21
+ #
22
+ # around do |test|
23
+ # some_method
24
+ # test.run
25
+ # end
26
+ class AroundBlock < Cop
27
+ MSG_NO_ARG = 'Test object should be passed to around block'.freeze
28
+ MSG_UNUSED_ARG = 'You should call `%<arg>s.call` ' \
29
+ 'or `%<arg>s.run`'.freeze
30
+
31
+ def_node_matcher :scoped_hook, <<-PATTERN
32
+ (block (send nil :around (sym {:each :example})) $(args ...) ...)
33
+ PATTERN
34
+
35
+ def_node_matcher :unscoped_hook, <<-PATTERN
36
+ (block (send nil :around) $(args ...) ...)
37
+ PATTERN
38
+
39
+ def_node_search :find_arg_usage, '(lvar $_)'
40
+
41
+ def on_block(node)
42
+ hook(node) do |parameters|
43
+ missing_parameters(parameters) do
44
+ add_offense(node, :expression, MSG_NO_ARG)
45
+ return
46
+ end
47
+
48
+ unused_parameters(parameters) do |param, name|
49
+ add_offense(param, :expression, format(MSG_UNUSED_ARG, arg: name))
50
+ end
51
+ end
52
+ end
53
+
54
+ private
55
+
56
+ def missing_parameters(node)
57
+ yield if node.children[0].nil?
58
+ end
59
+
60
+ def unused_parameters(node)
61
+ first_arg = node.children[0]
62
+ param, _methods, _args = *first_arg
63
+ start = node.parent
64
+
65
+ find_arg_usage(start) do |name|
66
+ return if param == name
67
+ end
68
+
69
+ yield first_arg, param
70
+ end
71
+
72
+ def hook(node, &block)
73
+ scoped_hook(node, &block) || unscoped_hook(node, &block)
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -34,8 +34,6 @@ module RuboCop
34
34
  # coerce objects for comparison.
35
35
  #
36
36
  class BeEql < Cop
37
- include RuboCop::Cop::ConfigurableEnforcedStyle
38
-
39
37
  MSG = 'Prefer `be` over `eql`'.freeze
40
38
 
41
39
  def_node_matcher :eql_type_with_identity, <<-PATTERN
@@ -6,10 +6,11 @@ module RuboCop
6
6
  # Checks that tests use `described_class`.
7
7
  #
8
8
  # If the first argument of describe is a class, the class is exposed to
9
- # each example via described_class - this should be used instead of
10
- # repeating the class.
9
+ # each example via described_class.
11
10
  #
12
- # @example
11
+ # This cop can be configured using the `EnforcedStyle` option
12
+ #
13
+ # @example `EnforcedStyle: described_class`
13
14
  # # bad
14
15
  # describe MyClass do
15
16
  # subject { MyClass.do_something }
@@ -19,11 +20,24 @@ module RuboCop
19
20
  # describe MyClass do
20
21
  # subject { described_class.do_something }
21
22
  # end
23
+ #
24
+ # @example `EnforcedStyle: explicit`
25
+ # # bad
26
+ # describe MyClass do
27
+ # subject { described_class.do_something }
28
+ # end
29
+ #
30
+ # # good
31
+ # describe MyClass do
32
+ # subject { MyClass.do_something }
33
+ # end
34
+ #
22
35
  class DescribedClass < Cop
23
36
  include RuboCop::RSpec::TopLevelDescribe
37
+ include RuboCop::Cop::ConfigurableEnforcedStyle
24
38
 
25
39
  DESCRIBED_CLASS = 'described_class'.freeze
26
- MSG = "Use `#{DESCRIBED_CLASS}` instead of `%s`".freeze
40
+ MSG = 'Use `%s` instead of `%s`'.freeze
27
41
 
28
42
  def_node_matcher :common_instance_exec_closure?, <<-PATTERN
29
43
  (block (send (const nil {:Class :Module}) :new ...) ...)
@@ -38,27 +52,44 @@ module RuboCop
38
52
  describe, described_class, body = described_constant(node)
39
53
  return unless top_level_describe?(describe)
40
54
 
41
- find_constant_usage(body, described_class) do |match|
42
- add_offense(match, :expression, format(MSG, match.const_name))
55
+ # in case we explicit style is used, this cop needs to remember what's
56
+ # being described, so to replace described_class with the constant
57
+ @described_class = described_class
58
+
59
+ find_usage(body) do |match|
60
+ add_offense(match, :expression, message(match.const_name))
43
61
  end
44
62
  end
45
63
 
46
64
  def autocorrect(node)
65
+ replacement = if style == :described_class
66
+ DESCRIBED_CLASS
67
+ else
68
+ @described_class.const_name
69
+ end
47
70
  lambda do |corrector|
48
- corrector.replace(node.loc.expression, DESCRIBED_CLASS)
71
+ corrector.replace(node.loc.expression, replacement)
49
72
  end
50
73
  end
51
74
 
52
75
  private
53
76
 
54
- def find_constant_usage(node, described_class, &block)
55
- yield(node) if node.eql?(described_class)
77
+ def find_usage(node, &block)
78
+ yield(node) if offensive?(node)
56
79
 
57
80
  return unless node.is_a?(Parser::AST::Node)
58
81
  return if scope_change?(node) || node.const_type?
59
82
 
60
83
  node.children.each do |child|
61
- find_constant_usage(child, described_class, &block)
84
+ find_usage(child, &block)
85
+ end
86
+ end
87
+
88
+ def message(offense)
89
+ if style == :described_class
90
+ format(MSG, DESCRIBED_CLASS, offense)
91
+ else
92
+ format(MSG, @described_class.const_name, DESCRIBED_CLASS)
62
93
  end
63
94
  end
64
95
 
@@ -75,6 +106,15 @@ module RuboCop
75
106
  def skip_blocks?
76
107
  cop_config['SkipBlocks'].equal?(true)
77
108
  end
109
+
110
+ def offensive?(node)
111
+ if style == :described_class
112
+ node.eql?(@described_class)
113
+ else
114
+ _receiver, method_name, *_args = *node
115
+ method_name == :described_class
116
+ end
117
+ end
78
118
  end
79
119
  end
80
120
  end
@@ -29,12 +29,22 @@ module RuboCop
29
29
  def repeated_examples(node)
30
30
  RuboCop::RSpec::ExampleGroup.new(node)
31
31
  .examples
32
- .group_by { |example| [example.metadata, example.implementation] }
32
+ .group_by { |example| example_signature(example) }
33
33
  .values
34
34
  .reject(&:one?)
35
35
  .flatten
36
36
  .map(&:to_node)
37
37
  end
38
+
39
+ def example_signature(example)
40
+ key_parts = [example.metadata, example.implementation]
41
+
42
+ if example.definition.method_name == :its
43
+ key_parts << example.definition.method_args
44
+ end
45
+
46
+ key_parts
47
+ end
38
48
  end
39
49
  end
40
50
  end
@@ -4,7 +4,7 @@ module RuboCop
4
4
  module RSpec
5
5
  # Version information for the RSpec RuboCop plugin.
6
6
  module Version
7
- STRING = '1.10.0'.freeze
7
+ STRING = '1.11.0'.freeze
8
8
  end
9
9
  end
10
10
  end
@@ -0,0 +1,30 @@
1
+ describe RuboCop::Cop::RSpec::AroundBlock do
2
+ subject(:cop) { described_class.new }
3
+
4
+ it 'finds `around` block without block arguments' do
5
+ expect_violation(<<-RUBY)
6
+ around do
7
+ ^^^^^^^^^ Test object should be passed to around block
8
+ do_something
9
+ end
10
+ RUBY
11
+ end
12
+
13
+ it 'finds `around` block with unused argument' do
14
+ expect_violation(<<-RUBY)
15
+ around do |test|
16
+ ^^^^ You should call `test.call` or `test.run`
17
+ do_something
18
+ end
19
+ RUBY
20
+ end
21
+
22
+ it 'checks the first argument of the block' do
23
+ expect_violation(<<-RUBY)
24
+ around do |test, unused|
25
+ ^^^^ You should call `test.call` or `test.run`
26
+ unused.run
27
+ end
28
+ RUBY
29
+ end
30
+ end
@@ -1,6 +1,10 @@
1
1
  describe RuboCop::Cop::RSpec::DescribedClass, :config do
2
2
  subject(:cop) { described_class.new(config) }
3
3
 
4
+ let(:cop_config) do
5
+ { 'EnforcedStyle' => enforced_style }
6
+ end
7
+
4
8
  shared_examples 'SkipBlocks enabled' do
5
9
  it 'does not flag violations within non-rspec blocks' do
6
10
  expect_violation(<<-RUBY)
@@ -69,141 +73,225 @@ describe RuboCop::Cop::RSpec::DescribedClass, :config do
69
73
  include_examples 'SkipBlocks disabled'
70
74
  end
71
75
 
72
- it 'checks for the use of the described class' do
73
- expect_violation(<<-RUBY)
74
- describe MyClass do
75
- include MyClass
76
- ^^^^^^^ Use `described_class` instead of `MyClass`
76
+ context 'when EnforcedStyle is :described_class' do
77
+ let(:enforced_style) { :described_class }
77
78
 
78
- subject { MyClass.do_something }
79
+ it 'checks for the use of the described class' do
80
+ expect_violation(<<-RUBY)
81
+ describe MyClass do
82
+ include MyClass
79
83
  ^^^^^^^ Use `described_class` instead of `MyClass`
80
84
 
81
- before { MyClass.do_something }
82
- ^^^^^^^ Use `described_class` instead of `MyClass`
83
- end
84
- RUBY
85
- end
85
+ subject { MyClass.do_something }
86
+ ^^^^^^^ Use `described_class` instead of `MyClass`
86
87
 
87
- it 'ignores described class as string' do
88
- expect_no_violations(<<-RUBY)
89
- describe MyClass do
90
- subject { "MyClass" }
91
- end
92
- RUBY
93
- end
94
-
95
- it 'ignores describe that do not reference to a class' do
96
- expect_no_violations(<<-RUBY)
97
- describe "MyClass" do
98
- subject { "MyClass" }
99
- end
100
- RUBY
101
- end
88
+ before { MyClass.do_something }
89
+ ^^^^^^^ Use `described_class` instead of `MyClass`
90
+ end
91
+ RUBY
92
+ end
102
93
 
103
- it 'ignores class if the scope is changing' do
104
- expect_no_violations(<<-RUBY)
105
- describe MyClass do
106
- Class.new { foo = MyClass }
107
- Module.new { bar = MyClass }
94
+ it 'ignores described class as string' do
95
+ expect_no_violations(<<-RUBY)
96
+ describe MyClass do
97
+ subject { "MyClass" }
98
+ end
99
+ RUBY
100
+ end
108
101
 
109
- def method
110
- include MyClass
102
+ it 'ignores describe that do not reference to a class' do
103
+ expect_no_violations(<<-RUBY)
104
+ describe "MyClass" do
105
+ subject { "MyClass" }
111
106
  end
107
+ RUBY
108
+ end
112
109
 
113
- class OtherClass
114
- include MyClass
110
+ it 'ignores class if the scope is changing' do
111
+ expect_no_violations(<<-RUBY)
112
+ describe MyClass do
113
+ Class.new { foo = MyClass }
114
+ Module.new { bar = MyClass }
115
+
116
+ def method
117
+ include MyClass
118
+ end
119
+
120
+ class OtherClass
121
+ include MyClass
122
+ end
123
+
124
+ module MyModle
125
+ include MyClass
126
+ end
115
127
  end
128
+ RUBY
129
+ end
116
130
 
117
- module MyModle
118
- include MyClass
131
+ it 'only takes class from top level describes' do
132
+ expect_violation(<<-RUBY)
133
+ describe MyClass do
134
+ describe MyClass::Foo do
135
+ subject { MyClass::Foo }
136
+
137
+ let(:foo) { MyClass }
138
+ ^^^^^^^ Use `described_class` instead of `MyClass`
139
+ end
119
140
  end
120
- end
121
- RUBY
122
- end
141
+ RUBY
142
+ end
123
143
 
124
- it 'only takes class from top level describes' do
125
- expect_violation(<<-RUBY)
126
- describe MyClass do
127
- describe MyClass::Foo do
128
- subject { MyClass::Foo }
144
+ it 'ignores subclasses' do
145
+ expect_no_violations(<<-RUBY)
146
+ describe MyClass do
147
+ subject { MyClass::SubClass }
148
+ end
149
+ RUBY
150
+ end
129
151
 
152
+ it 'ignores if namespace is not matching' do
153
+ expect_no_violations(<<-RUBY)
154
+ describe MyNamespace::MyClass do
155
+ subject { ::MyClass }
130
156
  let(:foo) { MyClass }
131
- ^^^^^^^ Use `described_class` instead of `MyClass`
132
157
  end
133
- end
134
- RUBY
135
- end
136
-
137
- it 'ignores subclasses' do
138
- expect_no_violations(<<-RUBY)
139
- describe MyClass do
140
- subject { MyClass::SubClass }
141
- end
142
- RUBY
143
- end
158
+ RUBY
159
+ end
144
160
 
145
- it 'ignores if namespace is not matching' do
146
- expect_no_violations(<<-RUBY)
147
- describe MyNamespace::MyClass do
148
- subject { ::MyClass }
149
- let(:foo) { MyClass }
150
- end
151
- RUBY
152
- end
161
+ it 'checks for the use of described class with namespace' do
162
+ expect_violation(<<-RUBY)
163
+ describe MyNamespace::MyClass do
164
+ subject { MyNamespace::MyClass }
165
+ ^^^^^^^^^^^^^^^^^^^^ Use `described_class` instead of `MyNamespace::MyClass`
166
+ end
167
+ RUBY
168
+ end
153
169
 
154
- it 'checks for the use of described class with namespace' do
155
- expect_violation(<<-RUBY)
156
- describe MyNamespace::MyClass do
157
- subject { MyNamespace::MyClass }
158
- ^^^^^^^^^^^^^^^^^^^^ Use `described_class` instead of `MyNamespace::MyClass`
159
- end
160
- RUBY
161
- end
170
+ it 'does not flag violations within a class scope change' do
171
+ expect_no_violations(<<-RUBY)
172
+ describe MyNamespace::MyClass do
173
+ before do
174
+ class Foo
175
+ thing = MyNamespace::MyClass.new
176
+ end
177
+ end
178
+ end
179
+ RUBY
180
+ end
162
181
 
163
- it 'does not flag violations within a class scope change' do
164
- expect_no_violations(<<-RUBY)
165
- describe MyNamespace::MyClass do
166
- before do
167
- class Foo
168
- thing = MyNamespace::MyClass.new
182
+ it 'does not flag violations within a hook scope change' do
183
+ expect_no_violations(<<-RUBY)
184
+ describe do
185
+ before do
186
+ MyNamespace::MyClass.new
169
187
  end
170
188
  end
171
- end
172
- RUBY
173
- end
189
+ RUBY
190
+ end
191
+
192
+ it 'checks for the use of described class with module' do
193
+ skip
174
194
 
175
- it 'does not flag violations within a hook scope change' do
176
- expect_no_violations(<<-RUBY)
177
- describe do
178
- before do
179
- MyNamespace::MyClass.new
195
+ expect_violation(<<-RUBY)
196
+ module MyNamespace
197
+ describe MyClass do
198
+ subject { MyNamespace::MyClass }
199
+ ^^^^^^^^^^^^^^^^^^^^ Use `described_class` instead of `MyNamespace::MyClass`
200
+ end
180
201
  end
181
- end
182
- RUBY
202
+ RUBY
203
+ end
204
+
205
+ include_examples 'autocorrect',
206
+ 'describe(Foo) { include Foo }',
207
+ 'describe(Foo) { include described_class }'
208
+
209
+ include_examples 'autocorrect',
210
+ 'describe(Foo) { subject { Foo.do_action } }',
211
+ 'describe(Foo) { subject { described_class.do_action } }'
212
+
213
+ include_examples 'autocorrect',
214
+ 'describe(Foo) { before { Foo.do_action } }',
215
+ 'describe(Foo) { before { described_class.do_action } }'
183
216
  end
184
217
 
185
- it 'checks for the use of described class with module' do
186
- skip
218
+ context 'when EnforcedStyle is :explicit' do
219
+ let(:enforced_style) { :explicit }
187
220
 
188
- expect_violation(<<-RUBY)
189
- module MyNamespace
221
+ it 'checks for the use of the described_class' do
222
+ expect_violation(<<-RUBY)
190
223
  describe MyClass do
191
- subject { MyNamespace::MyClass }
192
- ^^^^^^^^^^^^^^^^^^^^ Use `described_class` instead of `MyNamespace::MyClass`
224
+ include described_class
225
+ ^^^^^^^^^^^^^^^ Use `MyClass` instead of `described_class`
226
+
227
+ subject { described_class.do_something }
228
+ ^^^^^^^^^^^^^^^ Use `MyClass` instead of `described_class`
229
+
230
+ before { described_class.do_something }
231
+ ^^^^^^^^^^^^^^^ Use `MyClass` instead of `described_class`
193
232
  end
194
- end
195
- RUBY
196
- end
233
+ RUBY
234
+ end
197
235
 
198
- include_examples 'autocorrect',
199
- 'describe(Foo) { include Foo }',
200
- 'describe(Foo) { include described_class }'
236
+ it 'ignores described_class as string' do
237
+ expect_no_violations(<<-RUBY)
238
+ describe MyClass do
239
+ subject { "described_class" }
240
+ end
241
+ RUBY
242
+ end
201
243
 
202
- include_examples 'autocorrect',
203
- 'describe(Foo) { subject { Foo.do_something } }',
204
- 'describe(Foo) { subject { described_class.do_something } }'
244
+ it 'ignores describe that do not reference to a class' do
245
+ expect_no_violations(<<-RUBY)
246
+ describe "MyClass" do
247
+ subject { described_class }
248
+ end
249
+ RUBY
250
+ end
205
251
 
206
- include_examples 'autocorrect',
207
- 'describe(Foo) { before { Foo.do_something } }',
208
- 'describe(Foo) { before { described_class.do_something } }'
252
+ it 'does not flag violations within a class scope change' do
253
+ expect_no_violations(<<-RUBY)
254
+ describe MyNamespace::MyClass do
255
+ before do
256
+ class Foo
257
+ thing = described_class.new
258
+ end
259
+ end
260
+ end
261
+ RUBY
262
+ end
263
+
264
+ it 'does not flag violations within a hook scope change' do
265
+ expect_no_violations(<<-RUBY)
266
+ describe do
267
+ before do
268
+ described_class.new
269
+ end
270
+ end
271
+ RUBY
272
+ end
273
+
274
+ include_examples 'autocorrect',
275
+ 'describe(Foo) { include described_class }',
276
+ 'describe(Foo) { include Foo }'
277
+
278
+ include_examples 'autocorrect',
279
+ 'describe(Foo) { subject { described_class.do_action } }',
280
+ 'describe(Foo) { subject { Foo.do_action } }'
281
+
282
+ include_examples 'autocorrect',
283
+ 'describe(Foo) { before { described_class.do_action } }',
284
+ 'describe(Foo) { before { Foo.do_action } }'
285
+
286
+ original = <<-RUBY
287
+ describe(Foo) { include described_class }
288
+ describe(Bar) { include described_class }
289
+ RUBY
290
+ corrected = <<-RUBY
291
+ describe(Foo) { include Foo }
292
+ describe(Bar) { include Bar }
293
+ RUBY
294
+
295
+ include_examples 'autocorrect', original, corrected
296
+ end
209
297
  end
@@ -47,6 +47,15 @@ describe RuboCop::Cop::RSpec::RepeatedExample do
47
47
  RUBY
48
48
  end
49
49
 
50
+ it 'does not flag examples when different its arguments are used' do
51
+ expect_no_violations(<<-RUBY)
52
+ describe 'doing x' do
53
+ its(:x) { is_expected.to be_present }
54
+ its(:y) { is_expected.to be_present }
55
+ end
56
+ RUBY
57
+ end
58
+
50
59
  it 'does not flag repeated examples in different scopes' do
51
60
  expect_no_violations(<<-RUBY)
52
61
  describe 'doing x' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Backus
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-01-16 00:00:00.000000000 Z
13
+ date: 2017-02-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubocop
@@ -145,6 +145,7 @@ files:
145
145
  - config/default.yml
146
146
  - lib/rubocop-rspec.rb
147
147
  - lib/rubocop/cop/rspec/any_instance.rb
148
+ - lib/rubocop/cop/rspec/around_block.rb
148
149
  - lib/rubocop/cop/rspec/be_eql.rb
149
150
  - lib/rubocop/cop/rspec/cop.rb
150
151
  - lib/rubocop/cop/rspec/describe_class.rb
@@ -196,6 +197,7 @@ files:
196
197
  - spec/project/default_config_spec.rb
197
198
  - spec/project/project_requires_spec.rb
198
199
  - spec/rubocop/cop/rspec/any_instance_spec.rb
200
+ - spec/rubocop/cop/rspec/around_block_spec.rb
199
201
  - spec/rubocop/cop/rspec/be_eql_spec.rb
200
202
  - spec/rubocop/cop/rspec/cop_spec.rb
201
203
  - spec/rubocop/cop/rspec/describe_class_spec.rb
@@ -269,6 +271,7 @@ test_files:
269
271
  - spec/project/default_config_spec.rb
270
272
  - spec/project/project_requires_spec.rb
271
273
  - spec/rubocop/cop/rspec/any_instance_spec.rb
274
+ - spec/rubocop/cop/rspec/around_block_spec.rb
272
275
  - spec/rubocop/cop/rspec/be_eql_spec.rb
273
276
  - spec/rubocop/cop/rspec/cop_spec.rb
274
277
  - spec/rubocop/cop/rspec/describe_class_spec.rb