11# frozen_string_literal: true
2-
32# typed: strict
43
54require 'code_teams'
2524end
2625
2726module CodeOwnership
28- module_function
29-
3027 extend T ::Sig
31- extend T ::Helpers
3228
33- requires_ancestor { Kernel }
3429 GlobsToOwningTeamMap = T . type_alias { T ::Hash [ String , CodeTeams ::Team ] }
3530
3631 # Returns the version of the code_ownership gem and the codeowners-rs gem.
3732 sig { returns ( T ::Array [ String ] ) }
38- def version
33+ def self . version
3934 [ "code_ownership version: #{ VERSION } " ,
4035 "codeowners-rs version: #{ ::RustCodeOwners . version } " ]
4136 end
@@ -65,7 +60,7 @@ def version
6560 # # => raises exception if no owner found
6661 #
6762 sig { params ( file : String , from_codeowners : T ::Boolean , allow_raise : T ::Boolean ) . returns ( T . nilable ( CodeTeams ::Team ) ) }
68- def for_file ( file , from_codeowners : true , allow_raise : false )
63+ def self . for_file ( file , from_codeowners : true , allow_raise : false )
6964 if from_codeowners
7065 teams_for_files_from_codeowners ( [ file ] , allow_raise : allow_raise ) . values . first
7166 else
@@ -116,7 +111,7 @@ def for_file(file, from_codeowners: true, allow_raise: false)
116111 # @see #validate! for ensuring CODEOWNERS file is up-to-date
117112 #
118113 sig { params ( files : T ::Array [ String ] , allow_raise : T ::Boolean ) . returns ( T ::Hash [ String , T . nilable ( CodeTeams ::Team ) ] ) }
119- def teams_for_files_from_codeowners ( files , allow_raise : false )
114+ def self . teams_for_files_from_codeowners ( files , allow_raise : false )
120115 Private ::TeamFinder . teams_for_files ( files , allow_raise : allow_raise )
121116 end
122117
@@ -160,12 +155,12 @@ def teams_for_files_from_codeowners(files, allow_raise: false)
160155 # @see CLI#for_file for the command-line interface that uses this method
161156 #
162157 sig { params ( file : String ) . returns ( T . nilable ( T ::Hash [ Symbol , String ] ) ) }
163- def for_file_verbose ( file )
158+ def self . for_file_verbose ( file )
164159 ::RustCodeOwners . for_file ( file )
165160 end
166161
167162 sig { params ( team : T . any ( CodeTeams ::Team , String ) ) . returns ( T ::Array [ String ] ) }
168- def for_team ( team )
163+ def self . for_team ( team )
169164 team = T . must ( CodeTeams . find ( team ) ) if team . is_a? ( String )
170165 ::RustCodeOwners . for_team ( team . name )
171166 end
@@ -226,7 +221,7 @@ def for_team(team)
226221 files : T . nilable ( T ::Array [ String ] )
227222 ) . void
228223 end
229- def validate! (
224+ def self . validate! (
230225 autocorrect : true ,
231226 stage_changes : true ,
232227 files : nil
@@ -269,7 +264,7 @@ def validate!(
269264 # @note Leading newlines after the annotation are also removed to maintain clean formatting.
270265 #
271266 sig { params ( filename : String ) . void }
272- def remove_file_annotation! ( filename )
267+ def self . remove_file_annotation! ( filename )
273268 filepath = Pathname . new ( filename )
274269
275270 begin
@@ -292,24 +287,24 @@ def remove_file_annotation!(filename)
292287 # Given a backtrace from either `Exception#backtrace` or `caller`, find the
293288 # first line that corresponds to a file with assigned ownership
294289 sig { params ( backtrace : T . nilable ( T ::Array [ String ] ) , excluded_teams : T ::Array [ ::CodeTeams ::Team ] ) . returns ( T . nilable ( ::CodeTeams ::Team ) ) }
295- def for_backtrace ( backtrace , excluded_teams : [ ] )
290+ def self . for_backtrace ( backtrace , excluded_teams : [ ] )
296291 Private ::TeamFinder . for_backtrace ( backtrace , excluded_teams : excluded_teams )
297292 end
298293
299294 # Given a backtrace from either `Exception#backtrace` or `caller`, find the
300295 # first owned file in it, useful for figuring out which file is being blamed.
301296 sig { params ( backtrace : T . nilable ( T ::Array [ String ] ) , excluded_teams : T ::Array [ ::CodeTeams ::Team ] ) . returns ( T . nilable ( [ ::CodeTeams ::Team , String ] ) ) }
302- def first_owned_file_for_backtrace ( backtrace , excluded_teams : [ ] )
297+ def self . first_owned_file_for_backtrace ( backtrace , excluded_teams : [ ] )
303298 Private ::TeamFinder . first_owned_file_for_backtrace ( backtrace , excluded_teams : excluded_teams )
304299 end
305300
306- sig { params ( klass : T . nilable ( T . any ( T ::Class [ T . anything ] , Module ) ) ) . returns ( T . nilable ( ::CodeTeams ::Team ) ) }
307- def for_class ( klass )
301+ sig { params ( klass : T . nilable ( T . any ( T ::Class [ T . anything ] , T :: Module [ T . anything ] ) ) ) . returns ( T . nilable ( ::CodeTeams ::Team ) ) }
302+ def self . for_class ( klass )
308303 Private ::TeamFinder . for_class ( klass )
309304 end
310305
311306 sig { params ( package : Packs ::Pack ) . returns ( T . nilable ( ::CodeTeams ::Team ) ) }
312- def for_package ( package )
307+ def self . for_package ( package )
313308 Private ::TeamFinder . for_package ( package )
314309 end
315310
0 commit comments