rspectre 0.0.2 → 0.0.3

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.
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
  - - ">="