simplecov 0.18.3 → 0.20.0

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.
@@ -25,9 +25,11 @@ module SimpleCov
25
25
 
26
26
  # Initialize a new SimpleCov::Result from given Coverage.result (a Hash of filenames each containing an array of
27
27
  # coverage data)
28
- def initialize(original_result)
28
+ def initialize(original_result, command_name: nil, created_at: nil)
29
29
  result = adapt_result(original_result)
30
30
  @original_result = result.freeze
31
+ @command_name = command_name
32
+ @created_at = created_at
31
33
  @files = SimpleCov::FileList.new(result.map do |filename, coverage|
32
34
  SimpleCov::SourceFile.new(filename, JSON.parse(JSON.dump(coverage))) if File.file?(filename)
33
35
  end.compact.sort_by(&:filename))
@@ -70,15 +72,15 @@ module SimpleCov
70
72
  }
71
73
  end
72
74
 
75
+ def time_since_creation
76
+ Time.now - created_at
77
+ end
78
+
73
79
  # Loads a SimpleCov::Result#to_hash dump
74
80
  def self.from_hash(hash)
75
- command_name, data = hash.first
76
-
77
- result = SimpleCov::Result.new(data["coverage"])
78
-
79
- result.command_name = command_name
80
- result.created_at = Time.at(data["timestamp"])
81
- result
81
+ hash.map do |command_name, data|
82
+ new(data.fetch("coverage"), command_name: command_name, created_at: Time.at(data["timestamp"]))
83
+ end
82
84
  end
83
85
 
84
86
  private
@@ -86,7 +88,7 @@ module SimpleCov
86
88
  # We changed the format of the raw result data in simplecov, as people are likely
87
89
  # to have "old" resultsets lying around (but not too old so that they're still
88
90
  # considered we can adapt them).
89
- # See https://github.com/colszowka/simplecov/pull/824#issuecomment-576049747
91
+ # See https://github.com/simplecov-ruby/simplecov/pull/824#issuecomment-576049747
90
92
  def adapt_result(result)
91
93
  if pre_simplecov_0_18_result?(result)
92
94
  adapt_pre_simplecov_0_18_result(result)
@@ -103,9 +105,9 @@ module SimpleCov
103
105
  end
104
106
 
105
107
  def adapt_pre_simplecov_0_18_result(result)
106
- result.map do |file_path, line_coverage_data|
107
- [file_path, {"lines" => line_coverage_data}]
108
- end.to_h
108
+ result.transform_values do |line_coverage_data|
109
+ {"lines" => line_coverage_data}
110
+ end
109
111
  end
110
112
 
111
113
  def coverage
@@ -53,13 +53,8 @@ module SimpleCov
53
53
  # All results that are above the SimpleCov.merge_timeout will be
54
54
  # dropped. Returns an array of SimpleCov::Result items.
55
55
  def results
56
- results = []
57
- resultset.each do |command_name, data|
58
- result = SimpleCov::Result.from_hash(command_name => data)
59
- # Only add result if the timeout is above the configured threshold
60
- results << result if (Time.now - result.created_at) < SimpleCov.merge_timeout
61
- end
62
- results
56
+ results = Result.from_hash(resultset)
57
+ results.select { |result| result.time_since_creation < SimpleCov.merge_timeout }
63
58
  end
64
59
 
65
60
  def merge_and_store(*results)
@@ -56,7 +56,7 @@ module SimpleCov
56
56
  # Returns true if this line was skipped, false otherwise. Lines are skipped if they are wrapped with
57
57
  # # :nocov: comment lines.
58
58
  def skipped?
59
- !!skipped
59
+ skipped
60
60
  end
61
61
 
62
62
  # The status of this line - either covered, missed, skipped or never. Useful i.e. for direct use
@@ -5,12 +5,14 @@ module SimpleCov
5
5
  # Select the files that related to working scope directory of SimpleCov
6
6
  #
7
7
  module UselessResultsRemover
8
- ROOT_REGX = /\A#{Regexp.escape(SimpleCov.root + File::SEPARATOR)}/io.freeze
9
-
10
8
  def self.call(coverage_result)
11
9
  coverage_result.select do |path, _coverage|
12
- path =~ ROOT_REGX
10
+ path =~ root_regx
13
11
  end
14
12
  end
13
+
14
+ def self.root_regx
15
+ @root_regx ||= /\A#{Regexp.escape(SimpleCov.root + File::SEPARATOR)}/i.freeze
16
+ end
15
17
  end
16
18
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SimpleCov
4
- VERSION = "0.18.3"
4
+ VERSION = "0.20.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simplecov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.3
4
+ version: 0.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christoph Olszowka
8
+ - Tobias Pfeiffer
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2020-02-23 00:00:00.000000000 Z
12
+ date: 2020-11-29 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: docile
@@ -38,10 +39,25 @@ dependencies:
38
39
  - - "~>"
39
40
  - !ruby/object:Gem::Version
40
41
  version: '0.11'
42
+ - !ruby/object:Gem::Dependency
43
+ name: simplecov_json_formatter
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '0.1'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '0.1'
41
56
  description: Code coverage for Ruby with a powerful configuration library and automatic
42
57
  merging of coverage across test suites
43
58
  email:
44
59
  - christoph at olszowka de
60
+ - pragtob@gmail.com
45
61
  executables: []
46
62
  extensions: []
47
63
  extra_rdoc_files: []
@@ -65,8 +81,13 @@ files:
65
81
  - lib/simplecov/command_guesser.rb
66
82
  - lib/simplecov/configuration.rb
67
83
  - lib/simplecov/coverage_statistics.rb
84
+ - lib/simplecov/default_formatter.rb
68
85
  - lib/simplecov/defaults.rb
69
86
  - lib/simplecov/exit_codes.rb
87
+ - lib/simplecov/exit_codes/exit_code_handling.rb
88
+ - lib/simplecov/exit_codes/maximum_coverage_drop_check.rb
89
+ - lib/simplecov/exit_codes/minimum_coverage_by_file_check.rb
90
+ - lib/simplecov/exit_codes/minimum_overall_coverage_check.rb
70
91
  - lib/simplecov/file_list.rb
71
92
  - lib/simplecov/filter.rb
72
93
  - lib/simplecov/formatter.rb
@@ -76,6 +97,7 @@ files:
76
97
  - lib/simplecov/lines_classifier.rb
77
98
  - lib/simplecov/load_global_config.rb
78
99
  - lib/simplecov/no_defaults.rb
100
+ - lib/simplecov/process.rb
79
101
  - lib/simplecov/profiles.rb
80
102
  - lib/simplecov/profiles/bundler_filter.rb
81
103
  - lib/simplecov/profiles/hidden_filter.rb
@@ -91,15 +113,15 @@ files:
91
113
  - lib/simplecov/source_file/line.rb
92
114
  - lib/simplecov/useless_results_remover.rb
93
115
  - lib/simplecov/version.rb
94
- homepage: https://github.com/colszowka/simplecov
116
+ homepage: https://github.com/simplecov-ruby/simplecov
95
117
  licenses:
96
118
  - MIT
97
119
  metadata:
98
- bug_tracker_uri: https://github.com/colszowka/simplecov/issues
99
- changelog_uri: https://github.com/colszowka/simplecov/blob/master/CHANGELOG.md
100
- documentation_uri: https://www.rubydoc.info/gems/simplecov/0.18.3
120
+ bug_tracker_uri: https://github.com/simplecov-ruby/simplecov/issues
121
+ changelog_uri: https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md
122
+ documentation_uri: https://www.rubydoc.info/gems/simplecov/0.20.0
101
123
  mailing_list_uri: https://groups.google.com/forum/#!forum/simplecov
102
- source_code_uri: https://github.com/colszowka/simplecov/tree/v0.18.3
124
+ source_code_uri: https://github.com/simplecov-ruby/simplecov/tree/v0.20.0
103
125
  post_install_message:
104
126
  rdoc_options: []
105
127
  require_paths:
@@ -108,7 +130,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
130
  requirements:
109
131
  - - ">="
110
132
  - !ruby/object:Gem::Version
111
- version: 2.4.0
133
+ version: 2.5.0
112
134
  required_rubygems_version: !ruby/object:Gem::Requirement
113
135
  requirements:
114
136
  - - ">="