code_ownership 1.32.1 → 1.32.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: ebb581f1f5784bcac8ce0772d2350227c522f1d5096f2b9546a514b1d79fba1d
4
- data.tar.gz: 4f2d525089ce8a67f1c0248bfa2bdb06db432dac677ae995e125c5997cdd97f1
3
+ metadata.gz: 32fde48e3bfda45fef25ea894835a45548aac619699a8c56549000ca373916b5
4
+ data.tar.gz: e9155c7e859a17a8d31bc0f092822bd161f65a965b356060295be61ee695858b
5
5
  SHA512:
6
- metadata.gz: 2ccb639acea58cf8a882a06a1075146991781a8ee213251ec0dd8a5fdde19583df739a439246bd00548bf4b540e2904bd7c679f57ca470a3aecacfe1ee022e26
7
- data.tar.gz: af0f3b0ee49dbdd0ce6f5a8b98aa6cf15cf290620d080ae1d791b273377b723ae5a31a4d48a667ece4072a24748dff2672d15cb38752ad8574b0e6bdd65fffd4
6
+ metadata.gz: d407ad1c1437c75b7ee9b5df5e22bfe74d90b5e353f62546879fdaf09b7be6d9bbb4c67f70fe0721d55729215377f407f03a83bb094f0fd8d24ad209cbd65957
7
+ data.tar.gz: dcef3ed24a4af4825a3f8320bcd704885dee0f4f65d7db08515844a67a094dca32f06024275a4d4361908f85f5cbbbdffb27e53c79efab1c384cd1348bb642db
@@ -58,10 +58,10 @@ module CodeOwnership
58
58
 
59
59
  # Returns a string version of the relative path to a Rails constant,
60
60
  # 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
65
65
  (path && Pathname.new(path).relative_path_from(Pathname.pwd).to_s) || nil
66
66
  else
67
67
  nil
@@ -149,20 +149,23 @@ module CodeOwnership
149
149
  end
150
150
  private_class_method(:backtrace_with_ownership)
151
151
 
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)) }
153
153
  def for_class(klass)
154
154
  @memoized_values ||= T.let(@memoized_values, T.nilable(T::Hash[String, T.nilable(::CodeTeams::Team)]))
155
155
  @memoized_values ||= {}
156
+
157
+ klass_string = klass.to_s
158
+
156
159
  # 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)
159
162
  return nil if path.nil?
160
163
 
161
164
  value_to_memoize = for_file(path)
162
- @memoized_values[klass.to_s] = value_to_memoize
165
+ @memoized_values[klass_string] = value_to_memoize
163
166
  value_to_memoize
164
167
  else
165
- @memoized_values[klass.to_s]
168
+ @memoized_values[klass_string]
166
169
  end
167
170
  end
168
171
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code_ownership
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.32.1
4
+ version: 1.32.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-09 00:00:00.000000000 Z
11
+ date: 2023-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: code_teams