Skip to content

Commit 18e0116

Browse files
committed
temporarily providing mapper
1 parent da787b2 commit 18e0116

File tree

3 files changed

+77
-0
lines changed

3 files changed

+77
-0
lines changed

lib/code_ownership.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
require 'code_ownership/file_path_team_cache'
1313
require 'code_ownership/team_finder'
1414
require 'code_ownership/cli'
15+
require 'code_ownership/mapper'
16+
require 'code_ownership/private/glob_cache'
1517

1618
begin
1719
RUBY_VERSION =~ /(\d+\.\d+)/

lib/code_ownership/mapper.rb

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# frozen_string_literal: true
2+
3+
# typed: strict
4+
5+
module CodeOwnership
6+
module Mapper
7+
extend T::Sig
8+
extend T::Helpers
9+
10+
interface!
11+
12+
class << self
13+
extend T::Sig
14+
15+
sig { params(base: T::Class[Mapper]).void }
16+
def included(base)
17+
@mappers ||= T.let(@mappers, T.nilable(T::Array[T::Class[Mapper]]))
18+
@mappers ||= []
19+
@mappers << base
20+
end
21+
22+
sig { returns(T::Array[Mapper]) }
23+
def all
24+
(@mappers || []).map(&:new)
25+
end
26+
end
27+
28+
#
29+
# This should be fast when run with ONE file
30+
#
31+
sig do
32+
abstract.params(file: String)
33+
.returns(T.nilable(::CodeTeams::Team))
34+
end
35+
def map_file_to_owner(file); end
36+
37+
#
38+
# This should be fast when run with MANY files
39+
#
40+
sig do
41+
abstract.params(files: T::Array[String])
42+
.returns(T::Hash[String, ::CodeTeams::Team])
43+
end
44+
def globs_to_owner(files); end
45+
46+
#
47+
# This should be fast when run with MANY files
48+
#
49+
sig do
50+
abstract.params(cache: GlobsToOwningTeamMap, files: T::Array[String]).returns(GlobsToOwningTeamMap)
51+
end
52+
def update_cache(cache, files); end
53+
54+
sig { abstract.returns(String) }
55+
def description; end
56+
57+
sig { abstract.void }
58+
def bust_caches!; end
59+
60+
sig { returns(Private::GlobCache) }
61+
def self.to_glob_cache
62+
Private::GlobCache.new
63+
end
64+
end
65+
end
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# typed: strict
2+
# frozen_string_literal: true
3+
4+
module CodeOwnership
5+
module Private
6+
class GlobCache
7+
extend T::Sig
8+
end
9+
end
10+
end

0 commit comments

Comments
 (0)