rubocop-rspec 1.3.1 → 1.4.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: b5db54be8660c0653843bf09d2b723a73b82e364
4
- data.tar.gz: 69588667c375c8a39add5aa8e6ca8fa795aed5df
3
+ metadata.gz: e42d16b494c4c455836fe157ffa1c5dd6795b365
4
+ data.tar.gz: 6c22c6d00b2da712d5ec5cc7cd753455b3c41082
5
5
  SHA512:
6
- metadata.gz: 6bee62048a06069c3e02844cf8ecc9054812b40990e70d00498c1bec861fddf1e67719438d3b788526eb08df98ca2405323e61249896c4ec257137961fb6f905
7
- data.tar.gz: 87a7b3dfeb17da9a359abeee8881c8a6cf7fbb6e96aad10a33656207d904bb1d6e9d12150c6c24df39945e81294a0e34772c2c6d160eefb0bcc8e720f9569fd0
6
+ metadata.gz: df831e003acfe23c307bfc42df8efffbd26034b786d2627a8e7d003c3ea1b2e1d4ba49455ad362ab5bfc7c601551f7b1faf02b51f8b0deef7d29737f2065bb83
7
+ data.tar.gz: 5d7f687e369bfd5cb7dc426bb466c3bd24c86541c99287a5e4f1d1a7862d14e07861417c73c89fd7d4ed006dad3644f717d72f0348a08a987f37ee54d08579f6
@@ -1,17 +1,26 @@
1
1
  # Change log
2
2
 
3
- # 1.3.1
3
+ ## master (unreleased)
4
+
5
+ ## 1.4.0 (15/02/2016)
6
+
7
+ * Update to rubocop 0.37.2. ([@nijikon][])
8
+ * Update ruby versions we test against. ([@nijikon][])
9
+ * Add `RSpec::NotToNot` cop. ([@miguelfteixeira][])
10
+ * Add `Rspec/AnyInstance` cop. ([@mlarraz][])
11
+
12
+ ## 1.3.1
4
13
 
5
14
  * Fix auto correction issue - syntax had changed in RuboCop v0.31. ([@bquorning][])
6
15
  * Add RuboCop clone to vendor folder - see #39 for details. ([@bquorning][])
7
16
 
8
- # 1.3.0
17
+ ## 1.3.0
9
18
 
10
19
  * Ignore non string arguments for FilePathCop - thanks to @deivid-rodriguez. ([@geniou][])
11
20
  * Skip DescribeMethod cop for tagged specs. ([@deivid-rodriguez][])
12
21
  * Skip DescribeClass cop for feature/request specs. ([@deivid-rodriguez][])
13
22
 
14
- # 1.2.2
23
+ ## 1.2.2
15
24
 
16
25
  * Make `RSpec::ExampleWording` case insensitive. ([@geniou][])
17
26
 
@@ -62,5 +71,9 @@
62
71
  [@bquorning]: https://github.com/bquorning
63
72
  [@deivid-rodriguez]: https://github.com/deivid-rodriguez
64
73
  [@geniou]: https://github.com/geniou
74
+ [@jawshooah]: https://github.com/jawshooah
65
75
  [@nevir]: https://github.com/nevir
76
+ [@nijikon]: https://github.com/nijikon
66
77
  [@pstengel]: https://github.com/pstengel
78
+ [@miguelfteixeira]: https://github.com/miguelfteixeira
79
+ [@mlarraz]: https://github.com/mlarraz
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ source 'https://rubygems.org'
5
5
  gemspec
6
6
 
7
7
  group :test do
8
- gem 'coveralls', require: false
8
+ gem 'codeclimate-test-reporter', require: false
9
9
  end
10
10
 
11
11
  local_gemfile = 'Gemfile.local'
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # RuboCop RSpec
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/rubocop-rspec.png)](https://rubygems.org/gems/rubocop-rspec)
4
- [![Dependency Status](https://gemnasium.com/nevir/rubocop-rspec.png)](https://gemnasium.com/nevir/rubocop-rspec)
5
- [![Build Status](https://secure.travis-ci.org/nevir/rubocop-rspec.png?branch=master)](http://travis-ci.org/nevir/rubocop-rspec)
6
- [![Coverage Status](https://coveralls.io/repos/nevir/rubocop-rspec/badge.png?branch=master)](https://coveralls.io/r/nevir/rubocop-rspec)
7
- [![Code Climate](https://codeclimate.com/github/nevir/rubocop-rspec.png)](https://codeclimate.com/github/nevir/rubocop-rspec)
3
+ [![Gem Version](https://badge.fury.io/rb/rubocop-rspec.svg)](https://rubygems.org/gems/rubocop-rspec)
4
+ [![Dependency Status](https://gemnasium.com/nevir/rubocop-rspec.svg)](https://gemnasium.com/nevir/rubocop-rspec)
5
+ [![Build Status](https://secure.travis-ci.org/nevir/rubocop-rspec.svg?branch=master)](http://travis-ci.org/nevir/rubocop-rspec)
6
+ [![Coverage Status](https://codeclimate.com/github/nevir/rubocop-rspec/badges/coverage.svg)](https://codeclimate.com/github/nevir/rubocop-rspec/coverage)
7
+ [![Code Climate](https://codeclimate.com/github/nevir/rubocop-rspec.svg)](https://codeclimate.com/github/nevir/rubocop-rspec)
8
8
 
9
9
  RSpec-specific analysis for your projects, as an extension to
10
10
  [RuboCop](https://github.com/bbatsov/rubocop).
@@ -32,7 +32,7 @@ ways to do this:
32
32
 
33
33
  ### RuboCop configuration file
34
34
 
35
- Put this into you `.rubocop.yml`.
35
+ Put this into your `.rubocop.yml`.
36
36
 
37
37
  ```
38
38
  require: rubocop-rspec
@@ -85,7 +85,7 @@ This means that in order to run the specs locally, you need a (shallow) clone
85
85
  of the RuboCop repository:
86
86
 
87
87
  ```bash
88
- git clone --depth 1 git://github.com/bbatsov/rubocop.git vendor/rubocop
88
+ git submodule update --init --depth 1 vendor/rubocop
89
89
  ```
90
90
 
91
91
  ## License
@@ -1,3 +1,7 @@
1
+ RSpec/AnyInstance:
2
+ Description: 'Check that instances are not being stubbed globally'
3
+ Enabled: true
4
+
1
5
  RSpec/DescribeClass:
2
6
  Description: 'Check that the first argument to the top level describe is the tested class or module.'
3
7
  Enabled: true
@@ -38,3 +42,8 @@ RSpec/FilePath:
38
42
  RSpec/VerifiedDoubles:
39
43
  Description: 'Prefer using verifying doubles over normal doubles.'
40
44
  Enabled: false
45
+
46
+ RSpec/NotToNot:
47
+ Description: 'Enforces the usage of the same method on all negative message expectations.'
48
+ Enabled: true
49
+ AcceptedMethod: 'not_to'
@@ -9,6 +9,7 @@ require 'rubocop/rspec/top_level_describe'
9
9
  RuboCop::RSpec::Inject.defaults!
10
10
 
11
11
  # cops
12
+ require 'rubocop/cop/rspec/any_instance'
12
13
  require 'rubocop/cop/rspec/describe_class'
13
14
  require 'rubocop/cop/rspec/describe_method'
14
15
  require 'rubocop/cop/rspec/described_class'
@@ -16,4 +17,5 @@ require 'rubocop/cop/rspec/example_wording'
16
17
  require 'rubocop/cop/rspec/file_path'
17
18
  require 'rubocop/cop/rspec/instance_variable'
18
19
  require 'rubocop/cop/rspec/multiple_describes'
20
+ require 'rubocop/cop/rspec/not_to_not'
19
21
  require 'rubocop/cop/rspec/verified_doubles'
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module RSpec
6
+ # Pefer instance doubles over stubbing any instance of a class
7
+ #
8
+ # @example
9
+ # # bad
10
+ # describe MyClass do
11
+ # before { allow_any_instance_of(MyClass).to receive(:foo) }
12
+ # end
13
+ #
14
+ # # good
15
+ # describe MyClass do
16
+ # let(:my_instance) { instance_double(MyClass) }
17
+ #
18
+ # before do
19
+ # allow(MyClass).to receive(:new).and_return(my_instance)
20
+ # allow(my_instance).to receive(:foo)
21
+ # end
22
+ # end
23
+ class AnyInstance < Cop
24
+ MESSAGE = 'Avoid stubbing using `%{method}`'.freeze
25
+
26
+ ANY_INSTANCE_METHODS = [
27
+ :any_instance,
28
+ :allow_any_instance_of,
29
+ :expect_any_instance_of
30
+ ].freeze
31
+
32
+ def on_send(node)
33
+ _receiver, method_name, *_args = *node
34
+ return unless ANY_INSTANCE_METHODS.include?(method_name)
35
+
36
+ add_offense(node, :expression,
37
+ format(MESSAGE % { method: method_name },
38
+ node.loc.expression.source
39
+ )
40
+ )
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module RuboCop
4
5
  module Cop
@@ -24,7 +25,7 @@ module RuboCop
24
25
  FEATURE_PAIR = s(:pair, s(:sym, :type), s(:sym, :feature))
25
26
 
26
27
  MESSAGE = 'The first argument to describe should be the class or ' \
27
- 'module being tested.'
28
+ 'module being tested.'.freeze
28
29
 
29
30
  def on_top_level_describe(_node, args)
30
31
  return if args[0] && args[0].type == :const
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module RuboCop
4
5
  module Cop
@@ -21,7 +22,7 @@ module RuboCop
21
22
  include RuboCop::RSpec::TopLevelDescribe
22
23
 
23
24
  MESSAGE = 'The second argument to describe should be the method ' \
24
- "being tested. '#instance' or '.class'"
25
+ "being tested. '#instance' or '.class'".freeze
25
26
  METHOD_STRING_MATCHER = /^[\#\.].+/
26
27
 
27
28
  def on_top_level_describe(_node, args)
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module RuboCop
4
5
  module Cop
@@ -20,7 +21,7 @@ module RuboCop
20
21
  class DescribedClass < Cop
21
22
  include RuboCop::RSpec::TopLevelDescribe
22
23
 
23
- MESSAGE = 'Use `described_class` instead of `%s`'
24
+ MESSAGE = 'Use `described_class` instead of `%s`'.freeze
24
25
 
25
26
  def on_block(node)
26
27
  method, _args, body = *node
@@ -47,7 +48,7 @@ module RuboCop
47
48
 
48
49
  node.children.each do |child|
49
50
  if child == object
50
- name = object.loc.expression.source
51
+ name = object.loc.expression.source
51
52
  add_offense(child, :expression, format(MESSAGE, name))
52
53
  break
53
54
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module RuboCop
4
5
  module Cop
@@ -18,21 +19,22 @@ module RuboCop
18
19
  # it 'finds nothing' do
19
20
  # end
20
21
  class ExampleWording < Cop
21
- MSG = 'Do not use should when describing your tests.'
22
+ MSG = 'Do not use should when describing your tests.'.freeze
22
23
 
23
- def on_block(node) # rubocop:disable Metrics/AbcSize
24
+ def on_block(node) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/LineLength
24
25
  method, = *node
25
26
  _, method_name, *args = *method
26
27
 
27
28
  return unless method_name == :it
28
29
 
29
- arguments = *(args.first)
30
+ arguments = *args.first
30
31
  message = arguments.first.to_s
31
32
  return unless message.downcase.start_with?('should')
32
33
 
33
34
  arg1 = args.first.loc.expression
34
- message = Parser::Source::Range
35
- .new(arg1.source_buffer, arg1.begin_pos + 1, arg1.end_pos - 1)
35
+ message = Parser::Source::Range.new(arg1.source_buffer,
36
+ arg1.begin_pos + 1,
37
+ arg1.end_pos - 1)
36
38
 
37
39
  add_offense(message, message, MSG)
38
40
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module RuboCop
4
5
  module Cop
@@ -17,12 +18,12 @@ module RuboCop
17
18
  class FilePath < Cop
18
19
  include RuboCop::RSpec::TopLevelDescribe
19
20
 
20
- MESSAGE = 'Spec path should end with `%s`'
21
+ MESSAGE = 'Spec path should end with `%s`'.freeze
21
22
  METHOD_STRING_MATCHER = /^[\#\.].+/
22
23
 
23
24
  def on_top_level_describe(node, args)
24
25
  return unless single_top_level_describe?
25
- object = const_name(args.first)
26
+ object = args.first.const_name
26
27
  return unless object
27
28
 
28
29
  path_matcher = matcher(object, args[1])
@@ -54,7 +55,7 @@ module RuboCop
54
55
 
55
56
  def camel_to_underscore(string)
56
57
  string.dup.tap do |result|
57
- result.gsub!(/([^A-Z])([A-Z]+)/, '\\1_\\2')
58
+ result.gsub!(/([^A-Z])([A-Z]+)/, '\\1_\\2')
58
59
  result.gsub!(/([A-Z])([A-Z][^A-Z]+)/, '\\1_\\2')
59
60
  result.downcase!
60
61
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module RuboCop
4
5
  module Cop
@@ -19,12 +20,12 @@ module RuboCop
19
20
  # it { expect(foo).to be_empty }
20
21
  # end
21
22
  class InstanceVariable < Cop
22
- MESSAGE = 'Use `let` instead of an instance variable'
23
+ MESSAGE = 'Use `let` instead of an instance variable'.freeze
23
24
  EXAMPLE_GROUP_METHODS = [
24
25
  :example_group, :describe, :context, :xdescribe, :xcontext,
25
26
  :fdescribe, :fcontext, :shared_examples, :shared_context,
26
27
  :share_examples_for, :shared_examples_for, :feature
27
- ]
28
+ ].freeze
28
29
 
29
30
  def on_block(node)
30
31
  method, _args, _body = *node
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module RuboCop
4
5
  module Cop
@@ -23,13 +24,14 @@ module RuboCop
23
24
  class MultipleDescribes < Cop
24
25
  include RuboCop::RSpec::TopLevelDescribe
25
26
 
26
- MESSAGE = 'Do not use multiple top level describes - try to nest them.'
27
+ MSG = 'Do not use multiple top level describes - ' \
28
+ 'try to nest them.'.freeze
27
29
 
28
30
  def on_top_level_describe(node, _args)
29
31
  return if single_top_level_describe?
30
32
  return unless top_level_nodes.first == node
31
33
 
32
- add_offense(node, :expression, MESSAGE)
34
+ add_offense(node, :expression, MSG)
33
35
  end
34
36
  end
35
37
  end
@@ -0,0 +1,54 @@
1
+ # encoding: utf-8
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module RSpec
6
+ # Enforces the usage of the same method on all negative message
7
+ # expectations.
8
+ #
9
+ # @example
10
+ # # bad
11
+ # it '...' do
12
+ # expect(false).to_not be_true
13
+ # end
14
+ #
15
+ # # good
16
+ # it '...' do
17
+ # expect(false).not_to be_true
18
+ # end
19
+ class NotToNot < Cop
20
+ ACCEPTED_METHODS = [:not_to, :to_not].freeze
21
+
22
+ def on_send(node)
23
+ _receiver, method_name, *_args = *node
24
+
25
+ if method_name == rejected_method
26
+ add_offense(node, :expression, offense_message)
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ def accepted_method
33
+ @accepted_method ||= begin
34
+ method = cop_config['AcceptedMethod'].to_sym
35
+
36
+ unless ACCEPTED_METHODS.include?(method)
37
+ raise "Invalid AcceptedMethod value: #{method}"
38
+ end
39
+
40
+ method
41
+ end
42
+ end
43
+
44
+ def rejected_method
45
+ @rejected_method ||= (ACCEPTED_METHODS - [accepted_method]).first
46
+ end
47
+
48
+ def offense_message
49
+ "Use `#{accepted_method}` instead of `#{rejected_method}`"
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module RuboCop
4
5
  module Cop
@@ -17,7 +18,7 @@ module RuboCop
17
18
  # widget = instance_double("Widget")
18
19
  # end
19
20
  class VerifiedDoubles < Cop
20
- MSG = 'Prefer using verifying doubles over normal doubles.'
21
+ MSG = 'Prefer using verifying doubles over normal doubles.'.freeze
21
22
 
22
23
  def on_send(node)
23
24
  _receiver, method_name, *_args = *node
@@ -26,7 +26,7 @@ module RuboCop
26
26
  nodes = describe_statement_children(root_node)
27
27
  # If we have no top level describe statements, we need to check any
28
28
  # blocks on the top level (e.g. after a require).
29
- if nodes.size == 0
29
+ if nodes.empty?
30
30
  nodes = node_children(root_node).map do |child|
31
31
  describe_statement_children(child) if child.type == :block
32
32
  end.flatten.compact
@@ -1,10 +1,11 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module RuboCop
4
5
  module RSpec
5
6
  # Version information for the RSpec RuboCop plugin.
6
7
  module Version
7
- STRING = '1.3.1'
8
+ STRING = '1.4.0'.freeze
8
9
  end
9
10
  end
10
11
  end
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.test_files = spec.files.grep(%r{^spec/})
31
31
  spec.extra_rdoc_files = ['MIT-LICENSE.md', 'README.md']
32
32
 
33
- spec.add_development_dependency('rubocop', '~> 0.31')
33
+ spec.add_development_dependency('rubocop', '0.37.2')
34
34
  spec.add_development_dependency('rake', '~> 10.1')
35
35
  spec.add_development_dependency('rspec', '~> 3.0')
36
36
  spec.add_development_dependency('simplecov', '~> 0.8')
@@ -18,7 +18,7 @@ describe 'RuboCop Project' do # rubocop:disable RSpec/DescribeClass
18
18
  end
19
19
 
20
20
  it 'has configuration for all cops' do
21
- expect(default_config.keys.sort).to eq((cop_names).sort)
21
+ expect(default_config.keys.sort).to eq(cop_names.sort)
22
22
  end
23
23
 
24
24
  it 'has a nicely formatted description for all cops' do
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+
3
+ describe RuboCop::Cop::RSpec::AnyInstance do
4
+ subject(:cop) { described_class.new }
5
+
6
+ it 'finds `allow_any_instance_of` instead of an instance double' do
7
+ inspect_source(cop, ['before do',
8
+ ' allow_any_instance_of(Object).to receive(:foo)',
9
+ 'end'])
10
+ expect(cop.messages)
11
+ .to eq(['Avoid stubbing using `allow_any_instance_of`'])
12
+ expect(cop.highlights).to eq(['allow_any_instance_of(Object)'])
13
+ expect(cop.offenses.map(&:line).sort).to eq([2])
14
+ end
15
+
16
+ it 'finds `expect_any_instance_of` instead of an instance double' do
17
+ inspect_source(cop, ['before do',
18
+ ' expect_any_instance_of(Object).to receive(:foo)',
19
+ 'end'])
20
+ expect(cop.messages)
21
+ .to eq(['Avoid stubbing using `expect_any_instance_of`'])
22
+ expect(cop.highlights).to eq(['expect_any_instance_of(Object)'])
23
+ expect(cop.offenses.map(&:line).sort).to eq([2])
24
+ end
25
+
26
+ it 'finds old `any_instance` syntax instead of an instance double' do
27
+ inspect_source(cop, ['before do',
28
+ ' Object.any_instance.should_receive(:foo)',
29
+ 'end'])
30
+ expect(cop.messages)
31
+ .to eq(['Avoid stubbing using `any_instance`'])
32
+ expect(cop.highlights).to eq(['Object.any_instance'])
33
+ expect(cop.offenses.map(&:line).sort).to eq([2])
34
+ end
35
+ end
@@ -0,0 +1,41 @@
1
+ # encoding: utf-8
2
+
3
+ describe RuboCop::Cop::RSpec::NotToNot, :config do
4
+ subject(:cop) { described_class.new(config) }
5
+
6
+ context 'when AcceptedMethod is `not_to`' do
7
+ let(:cop_config) { { 'AcceptedMethod' => 'not_to' } }
8
+
9
+ it 'detects the `to_not` offense' do
10
+ inspect_source(subject, 'it { expect(false).to_not be_true }')
11
+
12
+ expect(subject.messages).to eq(['Use `not_to` instead of `to_not`'])
13
+ expect(subject.highlights).to eq(['expect(false).to_not be_true'])
14
+ expect(subject.offenses.map(&:line).sort).to eq([1])
15
+ end
16
+
17
+ it 'detects no offense when using `not_to`' do
18
+ inspect_source(subject, 'it { expect(false).not_to be_true }')
19
+
20
+ expect(subject.messages).to be_empty
21
+ end
22
+ end
23
+
24
+ context 'when AcceptedMethod is `to_not`' do
25
+ let(:cop_config) { { 'AcceptedMethod' => 'to_not' } }
26
+
27
+ it 'detects the `not_to` offense' do
28
+ inspect_source(subject, 'it { expect(false).not_to be_true }')
29
+
30
+ expect(subject.messages).to eq(['Use `to_not` instead of `not_to`'])
31
+ expect(subject.highlights).to eq(['expect(false).not_to be_true'])
32
+ expect(subject.offenses.map(&:line).sort).to eq([1])
33
+ end
34
+
35
+ it 'detects no offense when using `to_not`' do
36
+ inspect_source(subject, 'it { expect(false).to_not be_true }')
37
+
38
+ expect(subject.messages).to be_empty
39
+ end
40
+ end
41
+ end
@@ -3,11 +3,18 @@
3
3
  require 'rubocop'
4
4
 
5
5
  rubocop_path = File.join(File.dirname(__FILE__), '../vendor/rubocop')
6
+
6
7
  unless File.directory?(rubocop_path)
7
- fail "Can't run specs without a local RuboCop checkout. Look in the README."
8
+ raise "Can't run specs without a local RuboCop checkout. Look in the README."
8
9
  end
10
+
9
11
  Dir["#{rubocop_path}/spec/support/**/*.rb"].each { |f| require f }
10
12
 
13
+ if ENV['CI']
14
+ require 'codeclimate-test-reporter'
15
+ CodeClimate::TestReporter.start
16
+ end
17
+
11
18
  RSpec.configure do |config|
12
19
  config.order = :random
13
20
 
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.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian MacLeod
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-09-04 00:00:00.000000000 Z
12
+ date: 2016-02-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubocop
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: '0.31'
20
+ version: 0.37.2
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: '0.31'
27
+ version: 0.37.2
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +86,7 @@ files:
86
86
  - Rakefile
87
87
  - config/default.yml
88
88
  - lib/rubocop-rspec.rb
89
+ - lib/rubocop/cop/rspec/any_instance.rb
89
90
  - lib/rubocop/cop/rspec/describe_class.rb
90
91
  - lib/rubocop/cop/rspec/describe_method.rb
91
92
  - lib/rubocop/cop/rspec/described_class.rb
@@ -93,12 +94,14 @@ files:
93
94
  - lib/rubocop/cop/rspec/file_path.rb
94
95
  - lib/rubocop/cop/rspec/instance_variable.rb
95
96
  - lib/rubocop/cop/rspec/multiple_describes.rb
97
+ - lib/rubocop/cop/rspec/not_to_not.rb
96
98
  - lib/rubocop/cop/rspec/verified_doubles.rb
97
99
  - lib/rubocop/rspec/inject.rb
98
100
  - lib/rubocop/rspec/top_level_describe.rb
99
101
  - lib/rubocop/rspec/version.rb
100
102
  - rubocop-rspec.gemspec
101
103
  - spec/project_spec.rb
104
+ - spec/rubocop/cop/rspec/any_instance_spec.rb
102
105
  - spec/rubocop/cop/rspec/describe_class_spec.rb
103
106
  - spec/rubocop/cop/rspec/describe_method_spec.rb
104
107
  - spec/rubocop/cop/rspec/described_class_spec.rb
@@ -106,6 +109,7 @@ files:
106
109
  - spec/rubocop/cop/rspec/file_path_spec.rb
107
110
  - spec/rubocop/cop/rspec/instance_variable_spec.rb
108
111
  - spec/rubocop/cop/rspec/multiple_describes_spec.rb
112
+ - spec/rubocop/cop/rspec/not_to_not_spec.rb
109
113
  - spec/rubocop/cop/rspec/verified_doubles_spec.rb
110
114
  - spec/spec_helper.rb
111
115
  homepage: http://github.com/nevir/rubocop-rspec
@@ -128,12 +132,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
132
  version: '0'
129
133
  requirements: []
130
134
  rubyforge_project:
131
- rubygems_version: 2.2.0
135
+ rubygems_version: 2.5.1
132
136
  signing_key:
133
137
  specification_version: 4
134
138
  summary: Code style checking for RSpec files
135
139
  test_files:
136
140
  - spec/project_spec.rb
141
+ - spec/rubocop/cop/rspec/any_instance_spec.rb
137
142
  - spec/rubocop/cop/rspec/describe_class_spec.rb
138
143
  - spec/rubocop/cop/rspec/describe_method_spec.rb
139
144
  - spec/rubocop/cop/rspec/described_class_spec.rb
@@ -141,6 +146,6 @@ test_files:
141
146
  - spec/rubocop/cop/rspec/file_path_spec.rb
142
147
  - spec/rubocop/cop/rspec/instance_variable_spec.rb
143
148
  - spec/rubocop/cop/rspec/multiple_describes_spec.rb
149
+ - spec/rubocop/cop/rspec/not_to_not_spec.rb
144
150
  - spec/rubocop/cop/rspec/verified_doubles_spec.rb
145
151
  - spec/spec_helper.rb
146
- has_rdoc: