rspectre 0.0.2 → 0.0.3

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
  SHA256:
3
- metadata.gz: faf75c69148e3ed8340132dca49bcf008e8aa39b51bf366e2bb9265c8c38e84c
4
- data.tar.gz: aefe0c552bd1a55be839be57e22f6758632ece9e669609c9369c1f2ff59451ec
3
+ metadata.gz: d0605c2e9efccc4a2b34893deb51bc2799504b56458b3ce954057b434cb5fd93
4
+ data.tar.gz: b67d394f99ab11d29eae2327604ae70cde200268bd8f892138c44c95f45fedd4
5
5
  SHA512:
6
- metadata.gz: c4d1ff2a8a61cbfd0e474a1bd40204ee719eab8f76c65a4dd5bd51702558651983af4e51fabf190b7992c5d6ce386705b64a8a49bf5f7f27dd4d98f63f890ae5
7
- data.tar.gz: 76d3218da62b89ad85b905af19245824583399d5e9221538161f0e14f8ae8e029fb65d8bf8c2902e403d664c478dc8aba4ac7490951cd80f6ea59955ad7a876c
6
+ metadata.gz: e0b080c91cd39d1b2649b55b3c92cbd68a2c43fae4b28829936b005da721d9a756541a5dbf6901f73960e4ac8507a1d4c5f197bc760d52dcd1e451c96a7fe8f7
7
+ data.tar.gz: 485ed75293bcb98bdd40d7e5b6ac18d8bd2c015f9a110937ec92d05ea21526ad4d192553a38374edd3e889599cef7c4ff991432548a725cd38fda4994b7f9e21
@@ -4,12 +4,12 @@ $LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
4
4
 
5
5
  require 'pathname'
6
6
  require 'set'
7
+ require 'stringio'
7
8
 
8
9
  require 'anima'
9
10
  require 'concord'
10
11
  require 'parser/current'
11
12
  require 'rspec'
12
- require 'unparser'
13
13
 
14
14
  require 'rspectre/auto_corrector'
15
15
  require 'rspectre/color'
@@ -28,4 +28,5 @@ require 'rspectre/linter/unused_shared_setup'
28
28
 
29
29
  module RSpectre
30
30
  TRACKER = Tracker.new
31
+ LIB_PATH = Pathname.new(File.expand_path('../lib', __dir__))
31
32
  end
@@ -37,7 +37,7 @@ module RSpectre
37
37
  )
38
38
  end
39
39
 
40
- def range_end(node) # rubocop:disable Metrics/MethodLength
40
+ def range_end(node)
41
41
  location = node.location.expression
42
42
 
43
43
  last_line = location.last_line
@@ -8,7 +8,7 @@ module RSpectre
8
8
  RSpec::Core::ExampleGroup
9
9
  end
10
10
 
11
- def self.register(selector, locations) # rubocop:disable Metrics/MethodLength
11
+ def self.register(selector, locations)
12
12
  location = locations.first
13
13
 
14
14
  file = File.realpath(location.path)
@@ -5,7 +5,7 @@ module RSpectre
5
5
  class UnusedSharedSetup < self
6
6
  TAG = 'UnusedSharedSetup'
7
7
 
8
- def self.redefine_shared(receiver, method) # rubocop:disable Metrics/MethodLength
8
+ def self.redefine_shared(receiver, method)
9
9
  # Capture the original class method
10
10
  original_method = receiver.method(method)
11
11
 
@@ -6,8 +6,13 @@ module RSpectre
6
6
 
7
7
  EXIT_SUCCESS = 0
8
8
 
9
+ def initialize(*)
10
+ super
11
+ @rspec_output = StringIO.new
12
+ end
13
+
9
14
  def lint
10
- if runner.run_specs(RSpec.world.ordered_example_groups).equal?(EXIT_SUCCESS)
15
+ if run_specs.equal?(EXIT_SUCCESS)
11
16
  handle_offenses
12
17
  else
13
18
  exit_with_error
@@ -16,25 +21,39 @@ module RSpectre
16
21
 
17
22
  private
18
23
 
24
+ attr_reader :rspec_output
25
+
19
26
  def handle_offenses
20
27
  if TRACKER.offenses?
21
28
  auto_correct ? TRACKER.correct_offenses : TRACKER.report_offenses
29
+ else
30
+ puts 'No unused test setup detected.'
22
31
  end
23
32
  end
24
33
 
34
+ # The version of `rubocop` we are currently using has an issue with leading whitespace in
35
+ # heredocs.
36
+ # rubocop:disable Layout/EmptyLinesAroundArguments
25
37
  def exit_with_error
38
+ rspec_output.rewind
39
+
26
40
  abort(
27
41
  Color.red(
28
42
  'Running the specs failed. Either your tests do not pass '\
29
43
  'normally or this is a bug in RSpectre.'
30
- )
44
+ ) + <<~TEXT
45
+
46
+
47
+ RSpec Output:
48
+ ---
49
+ #{rspec_output.read}
50
+ TEXT
31
51
  )
32
52
  end
53
+ # rubocop:enable Layout/EmptyLinesAroundArguments
33
54
 
34
- def runner
35
- rspec_config = RSpec::Core::ConfigurationOptions.new(rspec_arguments)
36
-
37
- RSpec::Core::Runner.new(rspec_config).tap { |runner| runner.setup($stderr, StringIO.new) }
55
+ def run_specs
56
+ RSpec::Core::Runner.run(rspec_arguments, $stderr, rspec_output)
38
57
  end
39
58
  end
40
59
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RSpectre
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.3'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspectre
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Gollahon
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
- - !ruby/object:Gem::Dependency
70
- name: unparser
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '0.2'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '0.2'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: pry
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -157,7 +143,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
157
143
  requirements:
158
144
  - - ">="
159
145
  - !ruby/object:Gem::Version
160
- version: '2.3'
146
+ version: '2.5'
161
147
  required_rubygems_version: !ruby/object:Gem::Requirement
162
148
  requirements:
163
149
  - - ">="