Skip to content

Commit bb40f15

Browse files
for_class accepts string, remove unnecessary conversions (#39)
* for_class accepts string, remove unnecessary conversions * 1.32.1, bundle update
1 parent 9021506 commit bb40f15

File tree

3 files changed

+45
-36
lines changed

3 files changed

+45
-36
lines changed

Gemfile.lock

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,19 @@ GEM
1313
code_teams (1.0.1)
1414
sorbet-runtime
1515
coderay (1.1.3)
16-
diff-lcs (1.4.4)
16+
diff-lcs (1.5.0)
1717
method_source (1.0.0)
18+
netrc (0.11.0)
1819
packs (0.0.6)
1920
sorbet-runtime
20-
parser (3.1.2.0)
21+
parallel (1.22.1)
22+
parser (3.2.1.1)
2123
ast (~> 2.4.1)
22-
pry (0.14.1)
24+
pry (0.14.2)
2325
coderay (~> 1.1)
2426
method_source (~> 1.0)
2527
rake (13.0.6)
26-
rbi (0.0.14)
28+
rbi (0.0.16)
2729
ast
2830
parser (>= 2.6.4.0)
2931
sorbet-runtime (>= 0.5.9204)
@@ -41,39 +43,43 @@ GEM
4143
diff-lcs (>= 1.2.0, < 2.0)
4244
rspec-support (~> 3.10.0)
4345
rspec-support (3.10.2)
44-
sorbet (0.5.9889)
45-
sorbet-static (= 0.5.9889)
46-
sorbet-runtime (0.5.9889)
47-
sorbet-static (0.5.9889-universal-darwin-14)
48-
sorbet-static (0.5.9889-universal-darwin-15)
49-
sorbet-static (0.5.9889-universal-darwin-16)
50-
sorbet-static (0.5.9889-universal-darwin-17)
51-
sorbet-static (0.5.9889-universal-darwin-18)
52-
sorbet-static (0.5.9889-universal-darwin-19)
53-
sorbet-static (0.5.9889-universal-darwin-20)
54-
sorbet-static (0.5.9889-universal-darwin-21)
55-
sorbet-static (0.5.9889-x86_64-linux)
56-
spoom (1.1.11)
57-
sorbet (>= 0.5.9204)
46+
sorbet (0.5.10707)
47+
sorbet-static (= 0.5.10707)
48+
sorbet-runtime (0.5.10707)
49+
sorbet-static (0.5.10707-universal-darwin-14)
50+
sorbet-static (0.5.10707-universal-darwin-15)
51+
sorbet-static (0.5.10707-universal-darwin-16)
52+
sorbet-static (0.5.10707-universal-darwin-17)
53+
sorbet-static (0.5.10707-universal-darwin-18)
54+
sorbet-static (0.5.10707-universal-darwin-19)
55+
sorbet-static (0.5.10707-universal-darwin-20)
56+
sorbet-static (0.5.10707-universal-darwin-21)
57+
sorbet-static (0.5.10707-universal-darwin-22)
58+
sorbet-static (0.5.10707-x86_64-linux)
59+
sorbet-static-and-runtime (0.5.10707)
60+
sorbet (= 0.5.10707)
61+
sorbet-runtime (= 0.5.10707)
62+
spoom (1.1.16)
63+
sorbet (>= 0.5.10187)
5864
sorbet-runtime (>= 0.5.9204)
5965
thor (>= 0.19.2)
60-
tapioca (0.7.2)
66+
tapioca (0.11.1)
6167
bundler (>= 1.17.3)
62-
pry (>= 0.12.2)
63-
rbi (~> 0.0.0, >= 0.0.14)
64-
sorbet-runtime (>= 0.5.9204)
65-
sorbet-static (>= 0.5.9204)
68+
netrc (>= 0.11.0)
69+
parallel (>= 1.21.0)
70+
rbi (~> 0.0.0, >= 0.0.16)
71+
sorbet-static-and-runtime (>= 0.5.10187)
6672
spoom (~> 1.1.0, >= 1.1.11)
6773
thor (>= 1.2.0)
6874
yard-sorbet
6975
thor (1.2.1)
70-
unparser (0.6.4)
76+
unparser (0.6.7)
7177
diff-lcs (~> 1.3)
72-
parser (>= 3.1.0)
78+
parser (>= 3.2.0)
7379
webrick (1.7.0)
74-
yard (0.9.27)
80+
yard (0.9.28)
7581
webrick (~> 1.7.0)
76-
yard-sorbet (0.6.1)
82+
yard-sorbet (0.8.0)
7783
sorbet-runtime (>= 0.5)
7884
yard (>= 0.9)
7985

lib/code_ownership.rb

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,20 +149,23 @@ def backtrace_with_ownership(backtrace)
149149
end
150150
private_class_method(:backtrace_with_ownership)
151151

152-
sig { params(klass: T.nilable(T.any(Class, Module))).returns(T.nilable(::CodeTeams::Team)) }
152+
sig { params(klass: T.nilable(T.any(Class, Module, String))).returns(T.nilable(::CodeTeams::Team)) }
153153
def for_class(klass)
154154
@memoized_values ||= T.let(@memoized_values, T.nilable(T::Hash[String, T.nilable(::CodeTeams::Team)]))
155155
@memoized_values ||= {}
156+
157+
klass_string = klass.to_s
158+
156159
# We use key because the memoized value could be `nil`
157-
if !@memoized_values.key?(klass.to_s)
158-
path = Private.path_from_klass(klass)
160+
if !@memoized_values.key?(klass_string)
161+
path = Private.path_from_klass_string(klass_string)
159162
return nil if path.nil?
160163

161164
value_to_memoize = for_file(path)
162-
@memoized_values[klass.to_s] = value_to_memoize
165+
@memoized_values[klass_string] = value_to_memoize
163166
value_to_memoize
164167
else
165-
@memoized_values[klass.to_s]
168+
@memoized_values[klass_string]
166169
end
167170
end
168171

lib/code_ownership/private.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ def self.validate!(files:, autocorrect: true, stage_changes: true)
5858

5959
# Returns a string version of the relative path to a Rails constant,
6060
# or nil if it can't find something
61-
sig { params(klass: T.nilable(T.any(Class, Module))).returns(T.nilable(String)) }
62-
def self.path_from_klass(klass)
63-
if klass
64-
path = Object.const_source_location(klass.to_s)&.first
61+
sig { params(klass_string: T.nilable(String)).returns(T.nilable(String)) }
62+
def self.path_from_klass_string(klass_string)
63+
if klass_string
64+
path = Object.const_source_location(klass_string)&.first
6565
(path && Pathname.new(path).relative_path_from(Pathname.pwd).to_s) || nil
6666
else
6767
nil

0 commit comments

Comments
 (0)