sorbet-runtime 0.5.5657 → 0.5.5666
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/compatibility_patches.rb +22 -8
- data/lib/types/props/decorator.rb +0 -42
- data/lib/types/props/optional.rb +0 -16
- data/lib/types/props/private/serde_transform.rb +2 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4cd866af0077ef936f1b120988e8477c5d92e616306940c12d90b0980f74d03
|
4
|
+
data.tar.gz: d168a8ea316b20032efbb2ee4bf532ca2fe45fac306866034286b6bf7e6ba4e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7227a31f99a1bb1577bd65fac2a1a0ddf201d73428ed0cf4a2d9591d02732b2a38bcd122fc4f129dd1d030beb9b1adc8be023bf8b67a3260e9d748288ff1928
|
7
|
+
data.tar.gz: 0e7a3b52123add51b61a59f28f5ffb7cc6b2b70e1e38d70a0a22389d14051c6f118ba4b35b06f218e970c9c40a36529f6eeb15a2a7f2d07648996ad7a54c76cf
|
@@ -4,7 +4,8 @@
|
|
4
4
|
require_relative 'private/methods/_methods'
|
5
5
|
|
6
6
|
# Work around an interaction bug with sorbet-runtime and rspec-mocks,
|
7
|
-
# which occurs when using *_any_instance_of
|
7
|
+
# which occurs when using message expectations (*_any_instance_of,
|
8
|
+
# expect, allow) and and_call_original.
|
8
9
|
#
|
9
10
|
# When a sig is defined, sorbet-runtime will replace the sigged method
|
10
11
|
# with a wrapper that, upon first invocation, re-wraps the method with a faster
|
@@ -22,17 +23,30 @@ require_relative 'private/methods/_methods'
|
|
22
23
|
#
|
23
24
|
# We work around this by forcing re-wrapping before rspec stores a reference
|
24
25
|
# to the method.
|
25
|
-
if defined? ::RSpec::Mocks
|
26
|
+
if defined? ::RSpec::Mocks
|
26
27
|
module T
|
27
28
|
module CompatibilityPatches
|
28
|
-
module
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
module RSpecCompatibility
|
30
|
+
module RecorderExtensions
|
31
|
+
def observe!(method_name)
|
32
|
+
method = @klass.instance_method(method_name.to_sym)
|
33
|
+
T::Private::Methods.maybe_run_sig_block_for_method(method)
|
34
|
+
super(method_name)
|
35
|
+
end
|
33
36
|
end
|
37
|
+
::RSpec::Mocks::AnyInstance::Recorder.prepend(RecorderExtensions) if defined?(::RSpec::Mocks::AnyInstance::Recorder)
|
38
|
+
|
39
|
+
module MethodDoubleExtensions
|
40
|
+
def initialize(object, method_name, proxy)
|
41
|
+
if ::Kernel.instance_method(:respond_to?).bind(object).call(method_name, true)
|
42
|
+
method = ::RSpec::Support.method_handle_for(object, method_name)
|
43
|
+
T::Private::Methods.maybe_run_sig_block_for_method(method)
|
44
|
+
end
|
45
|
+
super(object, method_name, proxy)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
::RSpec::Mocks::MethodDouble.prepend(MethodDoubleExtensions) if defined?(::RSpec::Mocks::MethodDouble)
|
34
49
|
end
|
35
|
-
::RSpec::Mocks::AnyInstance::Recorder.prepend(RecorderExtensions)
|
36
50
|
end
|
37
51
|
end
|
38
52
|
end
|
@@ -66,7 +66,6 @@ class T::Props::Decorator
|
|
66
66
|
without_accessors
|
67
67
|
clobber_existing_method!
|
68
68
|
extra
|
69
|
-
optional
|
70
69
|
setter_validate
|
71
70
|
_tnilable
|
72
71
|
}.map {|k| [k, true]}.to_h.freeze, T::Hash[Symbol, T::Boolean])
|
@@ -289,47 +288,6 @@ class T::Props::Decorator
|
|
289
288
|
end
|
290
289
|
def prop_defined(name, cls, rules={})
|
291
290
|
cls = T::Utils.resolve_alias(cls)
|
292
|
-
if rules[:optional] == true
|
293
|
-
T::Configuration.hard_assert_handler(
|
294
|
-
'Use of `optional: true` is deprecated, please use `T.nilable(...)` instead.',
|
295
|
-
storytime: {
|
296
|
-
name: name,
|
297
|
-
cls_or_args: cls.to_s,
|
298
|
-
args: rules,
|
299
|
-
klass: decorated_class.name,
|
300
|
-
},
|
301
|
-
)
|
302
|
-
elsif rules[:optional] == false
|
303
|
-
T::Configuration.hard_assert_handler(
|
304
|
-
'Use of `optional: :false` is deprecated as it\'s the default value.',
|
305
|
-
storytime: {
|
306
|
-
name: name,
|
307
|
-
cls_or_args: cls.to_s,
|
308
|
-
args: rules,
|
309
|
-
klass: decorated_class.name,
|
310
|
-
},
|
311
|
-
)
|
312
|
-
elsif rules[:optional] == :on_load
|
313
|
-
T::Configuration.hard_assert_handler(
|
314
|
-
'Use of `optional: :on_load` is deprecated. You probably want `T.nilable(...)` with :raise_on_nil_write instead.',
|
315
|
-
storytime: {
|
316
|
-
name: name,
|
317
|
-
cls_or_args: cls.to_s,
|
318
|
-
args: rules,
|
319
|
-
klass: decorated_class.name,
|
320
|
-
},
|
321
|
-
)
|
322
|
-
elsif rules[:optional] == :existing
|
323
|
-
T::Configuration.hard_assert_handler(
|
324
|
-
'Use of `optional: :existing` is not allowed: you should use use T.nilable (http://go/optional)',
|
325
|
-
storytime: {
|
326
|
-
name: name,
|
327
|
-
cls_or_args: cls.to_s,
|
328
|
-
args: rules,
|
329
|
-
klass: decorated_class.name,
|
330
|
-
},
|
331
|
-
)
|
332
|
-
end
|
333
291
|
|
334
292
|
if T::Utils::Nilable.is_union_with_nilclass(cls)
|
335
293
|
# :_tnilable is introduced internally for performance purpose so that clients do not need to call
|
data/lib/types/props/optional.rb
CHANGED
@@ -14,19 +14,9 @@ end
|
|
14
14
|
module T::Props::Optional::DecoratorMethods
|
15
15
|
extend T::Sig
|
16
16
|
|
17
|
-
# TODO: clean this up. This set of options is confusing, and some of them are not universally
|
18
|
-
# applicable (e.g., :on_load only applies when using T::Serializable).
|
19
|
-
VALID_OPTIONAL_RULES = Set[
|
20
|
-
:existing, # deprecated
|
21
|
-
:on_load,
|
22
|
-
false,
|
23
|
-
true,
|
24
|
-
].freeze
|
25
|
-
|
26
17
|
VALID_RULE_KEYS = {
|
27
18
|
default: true,
|
28
19
|
factory: true,
|
29
|
-
optional: true,
|
30
20
|
}.freeze
|
31
21
|
private_constant :VALID_RULE_KEYS
|
32
22
|
|
@@ -74,12 +64,6 @@ module T::Props::Optional::DecoratorMethods
|
|
74
64
|
def prop_validate_definition!(name, cls, rules, type)
|
75
65
|
result = super
|
76
66
|
|
77
|
-
if (rules_optional = rules[:optional])
|
78
|
-
if !VALID_OPTIONAL_RULES.include?(rules_optional)
|
79
|
-
raise ArgumentError.new(":optional must be one of #{VALID_OPTIONAL_RULES.inspect}")
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
67
|
if rules.key?(:default) && rules.key?(:factory)
|
84
68
|
raise ArgumentError.new("Setting both :default and :factory is invalid. See: go/chalk-docs")
|
85
69
|
end
|
@@ -26,7 +26,7 @@ module T::Props
|
|
26
26
|
|
27
27
|
sig do
|
28
28
|
params(
|
29
|
-
type: T
|
29
|
+
type: T::Types::Base,
|
30
30
|
mode: ModeType,
|
31
31
|
varname: String,
|
32
32
|
)
|
@@ -134,12 +134,7 @@ module T::Props
|
|
134
134
|
when T::Types::Enum
|
135
135
|
generate(T::Utils.lift_enum(type), mode, varname)
|
136
136
|
else
|
137
|
-
|
138
|
-
# Sometimes this comes wrapped in a T::Types::Simple and sometimes not
|
139
|
-
handle_custom_type(varname, T.unsafe(type), mode)
|
140
|
-
else
|
141
|
-
"T::Props::Utils.deep_clone_object(#{varname})"
|
142
|
-
end
|
137
|
+
"T::Props::Utils.deep_clone_object(#{varname})"
|
143
138
|
end
|
144
139
|
end
|
145
140
|
|
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.
|
4
|
+
version: 0.5.5666
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|