File tree Expand file tree Collapse file tree 3 files changed +77
-0
lines changed
Expand file tree Collapse file tree 3 files changed +77
-0
lines changed Original file line number Diff line number Diff line change 1212require 'code_ownership/file_path_team_cache'
1313require 'code_ownership/team_finder'
1414require 'code_ownership/cli'
15+ require 'code_ownership/mapper'
16+ require 'code_ownership/private/glob_cache'
1517
1618begin
1719 RUBY_VERSION =~ /(\d +\. \d +)/
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments