covered-git 0.1.0 → 0.1.2

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: 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