sorbet-runtime 0.5.5657 → 0.5.5666
Sign up to get free protection for your applications and to get access to all the features.
- 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
|