covered-git 0.1.0 → 0.1.2

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: 138407c0e3f1aae0b6c5d02f630368a57bdd81f6ca8979f5a158a16488db1c6b
4
- data.tar.gz: 0c350304b8d56ad72d7f6312a61f4ef32c525d1104924eabc80c472329447ba9
3
+ metadata.gz: 28acdeaccd2f00e8258fe0a743787ee2b28479d395f3a02585a24da66b91b575
4
+ data.tar.gz: 2fc71474ea5d945916ff579b3d7fc2ab18a858901f9aa1a47623bf599e330286
5
5
  SHA512:
6
- metadata.gz: 95d7298b30d21d9cb7b1841d55045eb2bbd5db8f77bfc7600d557ac0919627f830f4ac1fa07b922288006c26c4e0deace16f71cc4c47094a3134340f2f82c7fb
7
- data.tar.gz: 6bdce61631d7ff6e28db78d8ed60496124581c3258c030fabb22d555f91d1fe1d11636c4b697200fc0354bf697795e415c344c5a119f2e1ad85ded1608cfca01
6
+ metadata.gz: 929f9678db24cf42b77208681ed01b137751509a0c9eb8426b2337dec0d4bbb0f5a7104d0b80626e70af789a7de7bad331e9a502f3eba050b9d87965d3da1c75
7
+ data.tar.gz: 18ec8ba1a59b805f8917007889343ec9e8a9212f051ce3b4ee4ab7050ba35084a1b1fa854f237cc546d85ab5faa1cd2860f37c57fb92f96e65a6eac6e3ca8308
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'covered/policy'
4
+
5
+ def initialize(...)
6
+ super
7
+
8
+ require 'set'
9
+ require 'rugged'
10
+ @repository = nil
11
+ end
12
+
13
+ # bake load_coverage_from_simplecov git:coverage
14
+ # @parameter branch [String] the branch to compare against.
15
+ # @parameter input [Covered::Policy] the input policy to use.
16
+ def statistics(branch: self.default_branch, input:)
17
+ input ||= context.lookup("covered:policy:current").call
18
+ modifications = lines_modified(branch)
19
+
20
+ # Calculate statistics:
21
+ statistics = Covered::Statistics.new
22
+
23
+ input.each do |coverage|
24
+ if modified_lines = modifications[coverage.source.path]
25
+ scoped_coverage = coverage.for_lines(modified_lines)
26
+ statistics << scoped_coverage
27
+ end
28
+ end
29
+
30
+ return statistics
31
+ end
32
+
33
+ private
34
+
35
+ def repository(root = context.root)
36
+ @repository ||= Rugged::Repository.discover(root)
37
+ end
38
+
39
+ def default_branch
40
+ "main"
41
+ end
42
+
43
+ # Compute the lines modified for a given branch, returning a hash of paths to a set of line numbers.
44
+ # @returns [Hash(String, Set(Integer))]
45
+ def lines_modified(branch)
46
+ result = Hash.new{|k,v| k[v] = Set.new}
47
+
48
+ diff = repository.diff_workdir(branch)
49
+
50
+ diff.each_patch do |patch|
51
+ path = patch.delta.new_file[:path]
52
+
53
+ patch.each_hunk do |hunk|
54
+ hunk.each_line do |line|
55
+ result[path] << line.new_lineno if line.addition?
56
+ end
57
+ end
58
+ end
59
+
60
+ result.default = nil
61
+ return result.freeze
62
+ end
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Covered
7
7
  module Git
8
- VERSION = "0.1.0"
8
+ VERSION = "0.1.2"
9
9
  end
10
10
  end
data/lib/covered/git.rb CHANGED
@@ -4,10 +4,3 @@
4
4
  # Copyright, 2023, by Samuel Williams.
5
5
 
6
6
  require_relative "git/version"
7
-
8
- module Covered
9
- module Git
10
- class Error < StandardError; end
11
- # Your code goes here...
12
- end
13
- end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: covered-git
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -37,8 +37,22 @@ cert_chain:
37
37
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
38
38
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
39
39
  -----END CERTIFICATE-----
40
- date: 2023-07-20 00:00:00.000000000 Z
40
+ date: 2023-07-21 00:00:00.000000000 Z
41
41
  dependencies:
42
+ - !ruby/object:Gem::Dependency
43
+ name: bake
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: covered
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -54,25 +68,26 @@ dependencies:
54
68
  - !ruby/object:Gem::Version
55
69
  version: '0.24'
56
70
  - !ruby/object:Gem::Dependency
57
- name: bake
71
+ name: rugged
58
72
  requirement: !ruby/object:Gem::Requirement
59
73
  requirements:
60
- - - ">="
74
+ - - "~>"
61
75
  - !ruby/object:Gem::Version
62
- version: '0'
76
+ version: '1.6'
63
77
  type: :runtime
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
- - - ">="
81
+ - - "~>"
68
82
  - !ruby/object:Gem::Version
69
- version: '0'
83
+ version: '1.6'
70
84
  description:
71
85
  email:
72
86
  executables: []
73
87
  extensions: []
74
88
  extra_rdoc_files: []
75
89
  files:
90
+ - bake/covered/git.rb
76
91
  - lib/covered/git.rb
77
92
  - lib/covered/git/version.rb
78
93
  - license.md
metadata.gz.sig CHANGED
Binary file