minitest-heat 2.1.0 → 2.1.1

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.
@@ -15,21 +15,18 @@ module Minitest
15
15
  @line_number = Integer(line_number)
16
16
  @max_line_count = max_line_count
17
17
  @context = context
18
+ @raw_lines = nil
18
19
  end
19
20
 
20
21
  # Returns relevant lines as a hash with line numbers as the keys
21
22
  #
22
23
  # @return [Hash] hash of relevant lines with line numbers as keys
23
- def to_h
24
- line_numbers.map(&:to_s).zip(lines).to_h
25
- end
24
+ def to_h = line_numbers.map(&:to_s).zip(lines).to_h
26
25
 
27
26
  # Looks up the line of code referenced
28
27
  #
29
28
  # @return [String] the line of code at filename:line_number
30
- def line
31
- file_lines[line_number - 1]
32
- end
29
+ def line = file_lines[line_number - 1]
33
30
 
34
31
  # Looks up the available lines of code around the referenced line number
35
32
  #
@@ -43,9 +40,7 @@ module Minitest
43
40
  # Line numbers for the returned lines
44
41
  #
45
42
  # @return [Array<Integer>] the line numbers corresponding to the lines returned
46
- def line_numbers
47
- (first_line_number..last_line_number).to_a.uniq
48
- end
43
+ def line_numbers = (first_line_number..last_line_number).to_a.uniq
49
44
 
50
45
  # Reads (and chomps) the lines of the target file
51
46
  #
@@ -68,9 +63,7 @@ module Minitest
68
63
  # The largest possible value for line numbers
69
64
  #
70
65
  # @return [Integer] the last line number of the file
71
- def max_line_number
72
- file_lines.length
73
- end
66
+ def max_line_number = file_lines.length
74
67
 
75
68
  # The number of the first line of code to return
76
69
  #
@@ -79,7 +72,7 @@ module Minitest
79
72
  target = line_number - first_line_offset - leftover_trailing_lines_count
80
73
 
81
74
  # Can't go earlier than the first line
82
- target < 1 ? 1 : target
75
+ [target, 1].max
83
76
  end
84
77
 
85
78
  # The number of the last line of code to return
@@ -89,7 +82,7 @@ module Minitest
89
82
  target = line_number + last_line_offset + leftover_preceding_lines_count
90
83
 
91
84
  # Can't go past the end of the file
92
- target > max_line_number ? max_line_number : target
85
+ [target, max_line_number].min
93
86
  end
94
87
 
95
88
  # The target number of preceding lines to include
@@ -135,21 +128,15 @@ module Minitest
135
128
  end
136
129
 
137
130
  # The total number of lines to include in addition to the primary line
138
- def other_lines_count
139
- max_line_count - 1
140
- end
131
+ def other_lines_count = max_line_count - 1
141
132
 
142
- def preceding_lines_split_count
143
- # Round up preceding lines if it's uneven because preceding lines are more likely to be
144
- # helpful when debugging
145
- (other_lines_count / 2).round(0, half: :up)
146
- end
133
+ # Round up preceding lines if it's uneven because preceding lines are more likely to be
134
+ # helpful when debugging
135
+ def preceding_lines_split_count = (other_lines_count / 2).round(0, half: :up)
147
136
 
148
- def trailing_lines_split_count
149
- # Round down preceding lines because they provide context in the file but don't contribute
150
- # in terms of the code that led to the error
151
- (other_lines_count / 2).round(0, half: :down)
152
- end
137
+ # Round down preceding lines because they provide context in the file but don't contribute
138
+ # in terms of the code that led to the error
139
+ def trailing_lines_split_count = (other_lines_count / 2).round(0, half: :down)
153
140
  end
154
141
  end
155
142
  end
@@ -36,12 +36,10 @@ module Minitest
36
36
  # returns a zero that would be problematic as a denomitor in calculating average times
37
37
  #
38
38
  # @return [Float] the clocktime duration of the test suite run in seconds
39
- def total_time
40
- # Don't return 0. The time can end up being 0 for a new or realy fast test suite, and
41
- # dividing by 0 doesn't go well when determining average time, so this ensures it uses a
42
- # close-enough-but-not-zero value.
43
- delta.zero? ? 0.01 : delta
44
- end
39
+ # Don't return 0. The time can end up being 0 for a new or realy fast test suite, and
40
+ # dividing by 0 doesn't go well when determining average time, so this ensures it uses a
41
+ # close-enough-but-not-zero value.
42
+ def total_time = delta.zero? ? 0.01 : delta
45
43
 
46
44
  # Records the test and assertion counts for a given test outcome
47
45
  # @param count [Integer] the number of assertions from the test
@@ -55,16 +53,12 @@ module Minitest
55
53
  # Provides a nice rounded answer for about how many tests were completed per second
56
54
  #
57
55
  # @return [Float] the average number of tests completed per second
58
- def tests_per_second
59
- (test_count / total_time).round(2)
60
- end
56
+ def tests_per_second = (test_count / total_time).round(2)
61
57
 
62
58
  # Provides a nice rounded answer for about how many assertions were completed per second
63
59
  #
64
60
  # @return [Float] the average number of assertions completed per second
65
- def assertions_per_second
66
- (assertion_count / total_time).round(2)
67
- end
61
+ def assertions_per_second = (assertion_count / total_time).round(2)
68
62
 
69
63
  # Generates a hash representation for JSON serialization
70
64
  #
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Minitest
4
4
  module Heat
5
- VERSION = '2.1.0'
5
+ VERSION = '2.1.1'
6
6
  end
7
7
  end
@@ -2,7 +2,8 @@
2
2
 
3
3
  require_relative 'heat_reporter'
4
4
 
5
- module Minitest # rubocop:disable Style/Documentation
5
+ # :reek:IrresponsibleModule - reopening Minitest module for plugin registration
6
+ module Minitest
6
7
  def self.plugin_heat_options(opts, options)
7
8
  opts.on '--heat-json', 'Output results as JSON instead of human-readable format' do
8
9
  options[:heat_json] = true
@@ -56,8 +56,8 @@ module Minitest
56
56
  end
57
57
 
58
58
  # About to start running a test. This allows a reporter to show that it is starting or that we
59
- # are in the middle of a test run.
60
- def prerecord(klass, name); end
59
+ # are in the middle of a test run. Parameters required by Minitest::AbstractReporter interface.
60
+ def prerecord(_klass, _name); end
61
61
 
62
62
  # Records the data from a result.
63
63
  #
@@ -105,14 +105,10 @@ module Minitest
105
105
  # Whether to output JSON instead of human-readable text
106
106
  #
107
107
  # @return [Boolean] true if --heat-json flag was passed
108
- def json_output?
109
- options[:heat_json]
110
- end
108
+ def json_output? = options[:heat_json]
111
109
 
112
110
  # Did this run pass?
113
- def passed?
114
- results.errors.empty? && results.failures.empty?
115
- end
111
+ def passed? = results.errors.empty? && results.failures.empty?
116
112
 
117
113
  private
118
114
 
@@ -31,13 +31,5 @@ Gem::Specification.new do |spec|
31
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
32
  spec.require_paths = ['lib']
33
33
 
34
- spec.add_runtime_dependency 'minitest'
35
-
36
- spec.add_development_dependency 'awesome_print'
37
- spec.add_development_dependency 'debug'
38
- spec.add_development_dependency 'rubocop'
39
- spec.add_development_dependency 'rubocop-minitest'
40
- spec.add_development_dependency 'rubocop-rake'
41
- spec.add_development_dependency 'simplecov'
42
- spec.add_development_dependency 'simplecov_json_formatter'
34
+ spec.add_dependency 'minitest'
43
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-heat
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garrett Dimon
@@ -23,104 +23,6 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0'
26
- - !ruby/object:Gem::Dependency
27
- name: awesome_print
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :development
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '0'
40
- - !ruby/object:Gem::Dependency
41
- name: debug
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '0'
47
- type: :development
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- - !ruby/object:Gem::Dependency
55
- name: rubocop
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- type: :development
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
- - !ruby/object:Gem::Dependency
69
- name: rubocop-minitest
70
- requirement: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: '0'
75
- type: :development
76
- prerelease: false
77
- version_requirements: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- - !ruby/object:Gem::Dependency
83
- name: rubocop-rake
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- type: :development
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- - !ruby/object:Gem::Dependency
97
- name: simplecov
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: simplecov_json_formatter
112
- requirement: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
26
  description: Presents test results in a visual manner to guide you to where to look
125
27
  first.
126
28
  email:
@@ -129,10 +31,14 @@ executables: []
129
31
  extensions: []
130
32
  extra_rdoc_files: []
131
33
  files:
34
+ - ".flayignore"
132
35
  - ".github/FUNDING.yml"
133
36
  - ".github/workflows/main.yml"
134
37
  - ".github/workflows/release.yml"
135
38
  - ".gitignore"
39
+ - ".reek.yml"
40
+ - ".reviewer.yml"
41
+ - ".reviewer_history.yml"
136
42
  - ".rubocop.yml"
137
43
  - CHANGELOG.md
138
44
  - CODE_OF_CONDUCT.md