sorbet-runtime 0.5.12366 → 0.6.12495
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/types/props/_props.rb +5 -8
- data/lib/types/props/decorator.rb +8 -3
- data/lib/types/props/pretty_printable.rb +5 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c51963eb3d01289d9be93a373a77fcb1fed6701b6a2be41a5d50437cb7afef35
|
4
|
+
data.tar.gz: c4e47477375bd1c16d3af48589aa70602784bce404f6358aaae746d6b569aa0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8073dad40d3aeb0d6ff6fce94b0ea3584a49f3ec54ebf0a970f4c868e1078397f0a65788c69d82a997033f87d176571b41acc6f9987fc1daff9889c3d2795673
|
7
|
+
data.tar.gz: e7f06c57eee3b49ea25a7651bb890ad6191f4aa0b19e16ad835503edb73a9ef37c179aa66bcd8c9c85082ac49bb07c8cc195c4cfad91c59e5a2fde59b6a7fffa
|
data/lib/types/props/_props.rb
CHANGED
@@ -132,17 +132,14 @@ module T::Props
|
|
132
132
|
end
|
133
133
|
|
134
134
|
# Shorthand helper to define a `prop` with `immutable => true`
|
135
|
-
sig { params(name: Symbol,
|
136
|
-
def const(name,
|
137
|
-
if
|
135
|
+
sig { params(name: Symbol, cls: T.untyped, rules: T.untyped).void }
|
136
|
+
def const(name, cls, **rules)
|
137
|
+
if rules.key?(:immutable)
|
138
138
|
Kernel.raise ArgumentError.new("Cannot pass 'immutable' argument when using 'const' keyword to define a prop")
|
139
139
|
end
|
140
140
|
|
141
|
-
|
142
|
-
|
143
|
-
else
|
144
|
-
self.prop(name, cls_or_args, **args.merge(immutable: true))
|
145
|
-
end
|
141
|
+
rules[:immutable] = true
|
142
|
+
self.prop(name, cls, **rules)
|
146
143
|
end
|
147
144
|
|
148
145
|
def included(child)
|
@@ -238,7 +238,9 @@ class T::Props::Decorator
|
|
238
238
|
end
|
239
239
|
|
240
240
|
if rules.keys.any? { |k| !valid_rule_key?(k) }
|
241
|
-
|
241
|
+
invalid_keys = rules.keys.reject { |k| valid_rule_key?(k) }
|
242
|
+
suffix = invalid_keys.size == 1 ? "" : "s"
|
243
|
+
raise ArgumentError.new("Invalid prop arg#{suffix} supplied in #{self}: #{invalid_keys.inspect}")
|
242
244
|
end
|
243
245
|
|
244
246
|
if !rules[:clobber_existing_method!] && !rules[:without_accessors] && BANNED_METHOD_NAMES.include?(name.to_sym)
|
@@ -318,7 +320,10 @@ class T::Props::Decorator
|
|
318
320
|
|
319
321
|
sig(:final) { params(name: Symbol).returns(T::Boolean).checked(:never) }
|
320
322
|
private def method_defined_on_ancestor?(name)
|
321
|
-
@class.method_defined?(name)
|
323
|
+
(@class.method_defined?(name) || @class.private_method_defined?(name)) &&
|
324
|
+
# Unfortunately, older versions of ruby don't allow the second parameter on
|
325
|
+
# `private_method_defined?`.
|
326
|
+
(!@class.method_defined?(name, false) && !@class.private_method_defined?(name, false))
|
322
327
|
end
|
323
328
|
|
324
329
|
sig(:final) { params(name: Symbol, rules: Rules).void.checked(:never) }
|
@@ -384,7 +389,7 @@ class T::Props::Decorator
|
|
384
389
|
#
|
385
390
|
if sensitivity_and_pii[:pii] && @class.is_a?(Class) && !T.unsafe(@class).contains_pii?
|
386
391
|
raise ArgumentError.new(
|
387
|
-
|
392
|
+
"Cannot define pii prop `#{@class}##{name}` because `#{@class}` is `contains_no_pii`"
|
388
393
|
)
|
389
394
|
end
|
390
395
|
end
|
@@ -12,8 +12,8 @@ module T::Props::PrettyPrintable
|
|
12
12
|
pp.group(1, "<#{klass.inspect_class_with_decoration(self)}", ">") do
|
13
13
|
klass.all_props.sort.each do |prop|
|
14
14
|
pp.breakable
|
15
|
-
val = klass.get(self, prop)
|
16
15
|
rules = klass.prop_rules(prop)
|
16
|
+
val = klass.get(self, prop, rules)
|
17
17
|
pp.text("#{prop}=")
|
18
18
|
if (custom_inspect = rules[:inspect])
|
19
19
|
inspected = if T::Utils.arity(custom_inspect) == 1
|
@@ -22,8 +22,8 @@ module T::Props::PrettyPrintable
|
|
22
22
|
custom_inspect.call(val, {multiline: multiline})
|
23
23
|
end
|
24
24
|
pp.text(inspected.nil? ? "nil" : inspected)
|
25
|
-
elsif rules[:sensitivity] && !
|
26
|
-
pp.text("<REDACTED #{
|
25
|
+
elsif (sensitivity = rules[:sensitivity]) && !sensitivity.empty? && !val.nil?
|
26
|
+
pp.text("<REDACTED #{sensitivity.join(', ')}>")
|
27
27
|
else
|
28
28
|
val.pretty_print(pp)
|
29
29
|
end
|
@@ -56,14 +56,14 @@ module T::Props::PrettyPrintable
|
|
56
56
|
|
57
57
|
# Overridable method to specify how the first part of a `pretty_print`d object's class should look like
|
58
58
|
# NOTE: This is just to support Stripe's `PrettyPrintableModel` case, and not recommended to be overridden
|
59
|
-
sig { params(instance: T::Props::PrettyPrintable).returns(String) }
|
59
|
+
sig { params(instance: T::Props::PrettyPrintable).returns(String).checked(:never) }
|
60
60
|
def inspect_class_with_decoration(instance)
|
61
61
|
T.unsafe(instance).class.to_s
|
62
62
|
end
|
63
63
|
|
64
64
|
# Overridable method to add anything that is not a prop
|
65
65
|
# NOTE: This is to support cases like Serializable's `@_extra_props`, and Stripe's `PrettyPrintableModel#@_deleted`
|
66
|
-
sig { params(instance: T::Props::PrettyPrintable, pp: T.any(PrettyPrint, PP::SingleLine)).void }
|
66
|
+
sig { params(instance: T::Props::PrettyPrintable, pp: T.any(PrettyPrint, PP::SingleLine)).void.checked(:never) }
|
67
67
|
def pretty_print_extra(instance, pp); end
|
68
68
|
end
|
69
69
|
end
|
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.
|
4
|
+
version: 0.6.12495
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-07
|
11
|
+
date: 2025-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -256,7 +256,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
256
256
|
requirements:
|
257
257
|
- - ">="
|
258
258
|
- !ruby/object:Gem::Version
|
259
|
-
version:
|
259
|
+
version: 3.0.0
|
260
260
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
261
261
|
requirements:
|
262
262
|
- - ">="
|