sorbet-runtime 0.5.6346 → 0.5.6349

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: ccd35b0362921e31eb5c9a7bfbab5b33f337eca5e785175db007ce503deaf418
4
- data.tar.gz: c44f1a563ea2a4bb6be35068957fcb0d08116745dc26f7ade284bf2dc66d2720
3
+ metadata.gz: 37e5c18902b6bf05fda832dcfae31a46dd3ad7c454c7741f7003924c70e351fc
4
+ data.tar.gz: fba7a016bdbc64626802d5ccfdc9cf18ac382936ac7c98dc3bb62b610754a8e6
5
5
  SHA512:
6
- metadata.gz: f8b8cc96bc8ec2a866dd726a7828f5cab96251dbc391d03f29c6ffb5d4555a966a28c216df849d93c539993e19b37d4f73f04bc5244968dc4559705eff9f9a8f
7
- data.tar.gz: 84d5da8c69776de610a6103166a8a756885c36fb2095c65d262f495696b06b71b7854dcba4662f50066f62d68c33bfc4ebcb82c15913e6559160740d56a315a1
6
+ metadata.gz: 4754a24ac572c182cb80f76c0505e02e61af830e2585cf73b464eba30fe24fc51c9ffeaa2b6ef1ff31a5d3b97e1c70e2d52de6398e924262cbae94e9408334ab
7
+ data.tar.gz: e7120e72312db83159fdde80db0ca357bf526e69fd7d97d5327623b5d3cc1f0c6d76753c25c1fd8ec52542b087a7e17db94e65a4de8c920efbbcff785cd4cdd2
@@ -433,6 +433,22 @@ module T::Configuration
433
433
  @sensitivity_and_pii_handler
434
434
  end
435
435
 
436
+ @redaction_handler = nil
437
+ # Set to a redaction handling function. This will be called when the
438
+ # `_redacted` version of a prop reader is used. By default this is set to
439
+ # `nil` and will raise an exception when the redacted version of a prop is
440
+ # accessed.
441
+ #
442
+ # @param [Lambda, Proc, nil] value Proc that converts a value into its
443
+ # redacted version according to the spec passed as the second argument.
444
+ def self.redaction_handler=(handler)
445
+ @redaction_handler = handler
446
+ end
447
+
448
+ def self.redaction_handler
449
+ @redaction_handler
450
+ end
451
+
436
452
  # Set to a function which can get the 'owner' of a class. This is
437
453
  # used in reporting deserialization errors
438
454
  #
@@ -37,7 +37,6 @@ module T::Private::Final
37
37
  mod.extend(mod.is_a?(Class) ? NoInherit : NoIncludeExtend)
38
38
  mark_as_final_module(mod)
39
39
  mark_as_final_module(mod.singleton_class)
40
- T::Private::Methods.add_module_with_final(mod)
41
40
  T::Private::Methods.install_hooks(mod)
42
41
  end
43
42
 
@@ -184,11 +184,11 @@ module T::Private::Methods
184
184
  # Don't compute mod.ancestors if we don't need to bother checking final-ness.
185
185
  if was_ever_final?(method_name) && module_with_final?(mod)
186
186
  _check_final_ancestors(mod, mod.ancestors, [method_name])
187
+ # We need to fetch the active declaration again, as _check_final_ancestors
188
+ # may have reset it (see the comment in that method for details).
189
+ current_declaration = T::Private::DeclState.current.active_declaration
187
190
  end
188
191
 
189
- # We need to fetch the active declaration again, as _check_final_ancestors
190
- # may have reset it (see the comment in that method for details).
191
- current_declaration = T::Private::DeclState.current.active_declaration
192
192
  if current_declaration.nil?
193
193
  return
194
194
  end
@@ -210,9 +210,9 @@ module T::Private::Methods
210
210
  # which is called only on the *first* invocation.
211
211
  # This wrapper is very slow, so it will subsequently re-wrap with a much faster wrapper
212
212
  # (or unwrap back to the original method).
213
- new_method = nil
213
+ key = method_owner_and_name_to_key(mod, method_name)
214
214
  T::Private::ClassUtils.replace_method(mod, method_name) do |*args, &blk|
215
- method_sig = T::Private::Methods.maybe_run_sig_block_for_method(new_method)
215
+ method_sig = T::Private::Methods.maybe_run_sig_block_for_key(key)
216
216
  method_sig ||= T::Private::Methods._handle_missing_method_signature(
217
217
  self,
218
218
  original_method,
@@ -239,8 +239,6 @@ module T::Private::Methods
239
239
  end
240
240
  end
241
241
 
242
- new_method = mod.instance_method(method_name)
243
- key = method_to_key(new_method)
244
242
  @sig_wrappers[key] = sig_block
245
243
  if current_declaration.final
246
244
  add_final_method(key)
@@ -379,7 +377,8 @@ module T::Private::Methods
379
377
  maybe_run_sig_block_for_key(method_to_key(method))
380
378
  end
381
379
 
382
- private_class_method def self.maybe_run_sig_block_for_key(key)
380
+ # Only public so that it can be accessed in the closure for _on_method_added
381
+ def self.maybe_run_sig_block_for_key(key)
383
382
  run_sig_block_for_key(key) if has_sig_block_for_key(key)
384
383
  end
385
384
 
@@ -449,8 +449,11 @@ class T::Props::Decorator
449
449
 
450
450
  @class.send(:define_method, redacted_method) do
451
451
  value = self.public_send(prop_name)
452
- Chalk::Tools::RedactionUtils.redact_with_directive(
453
- value, redaction)
452
+ handler = T::Configuration.redaction_handler
453
+ if !handler
454
+ raise "Using `redaction:` on a prop requires specifying `T::Configuration.redaction_handler`"
455
+ end
456
+ handler.call(value, redaction)
454
457
  end
455
458
  end
456
459
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorbet-runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6346
4
+ version: 0.5.6349
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-16 00:00:00.000000000 Z
11
+ date: 2021-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest