sorbet-runtime 0.5.5579 → 0.5.5585
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/sorbet-runtime.rb +1 -0
- data/lib/types/non_forcing_constants.rb +51 -0
- data/lib/types/props/decorator.rb +0 -8
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35b3fe4f8f7fae4fdbd19e655762c071f4f37f928904605e99041b66019b2a9a
|
4
|
+
data.tar.gz: c1468cf54f40df012dd952b783f4c8acfeb13c7740088563f9167bdc057929bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90dd82b326e2334f0aed1bb8b501e84d286e015888baac656020dd882446b40a49ab45de1f7d6dd01cd3fe89015b5702d5e9e40c7ef0e8ca4d0ef05acb386a25
|
7
|
+
data.tar.gz: 8d4d4916ac9a8b16223143e091289876f5b81816817f72e7eb7eb66ee594ca6f137495e2460ef25230a751ecb99d6831c38b8093fd371cccfa5154a7c769bd56
|
data/lib/sorbet-runtime.rb
CHANGED
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# typed: strict
|
3
|
+
|
4
|
+
module T::NonForcingConstants
|
5
|
+
# NOTE: This method is documented on the RBI in Sorbet's payload, so that it
|
6
|
+
# shows up in the hover/completion documentation via LSP.
|
7
|
+
T::Sig::WithoutRuntime.sig {params(val: BasicObject, klass: String).returns(T::Boolean)}
|
8
|
+
def self.non_forcing_is_a?(val, klass)
|
9
|
+
method_name = "T::NonForcingConstants.non_forcing_is_a?"
|
10
|
+
if klass.empty?
|
11
|
+
raise ArgumentError.new("The string given to `#{method_name}` must not be empty")
|
12
|
+
end
|
13
|
+
|
14
|
+
current_klass = T.let(nil, T.nilable(Module))
|
15
|
+
current_prefix = T.let(nil, T.nilable(String))
|
16
|
+
|
17
|
+
parts = klass.split('::')
|
18
|
+
parts.each do |part|
|
19
|
+
if current_klass.nil?
|
20
|
+
# First iteration
|
21
|
+
if part != ""
|
22
|
+
raise ArgumentError.new("The string given to `#{method_name}` must be an absolute constant reference that starts with `::`")
|
23
|
+
end
|
24
|
+
|
25
|
+
current_klass = Object
|
26
|
+
current_prefix = ''
|
27
|
+
else
|
28
|
+
if current_klass.autoload?(part)
|
29
|
+
# There's an autoload registered for that constant, which means it's not
|
30
|
+
# yet loaded. `value` can't be an instance of something not yet loaded.
|
31
|
+
return false
|
32
|
+
end
|
33
|
+
|
34
|
+
# Sorbet guarantees that the string is an absolutely resolved name.
|
35
|
+
search_inheritance_chain = false
|
36
|
+
if !current_klass.const_defined?(part, search_inheritance_chain)
|
37
|
+
return false
|
38
|
+
end
|
39
|
+
|
40
|
+
current_klass = current_klass.const_get(part)
|
41
|
+
current_prefix = "#{current_prefix}::#{part}"
|
42
|
+
|
43
|
+
if !Module.===(current_klass)
|
44
|
+
raise ArgumentError.new("#{current_prefix} is not a class or module")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
return current_klass.===(val)
|
50
|
+
end
|
51
|
+
end
|
@@ -605,14 +605,6 @@ class T::Props::Decorator
|
|
605
605
|
end
|
606
606
|
loaded_foreign
|
607
607
|
end
|
608
|
-
|
609
|
-
@class.send(:define_method, "#{prop_name}_record") do |allow_direct_mutation: nil|
|
610
|
-
T::Configuration.soft_assert_handler(
|
611
|
-
"Using deprecated 'model.#{prop_name}_record' foreign key syntax. You should replace this with 'model.#{prop_name}_'",
|
612
|
-
notify: 'vasi'
|
613
|
-
)
|
614
|
-
send(fk_method, allow_direct_mutation: allow_direct_mutation)
|
615
|
-
end
|
616
608
|
end
|
617
609
|
|
618
610
|
# checked(:never) - Rules hash is expensive to check
|
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.5585
|
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-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- lib/types/generic.rb
|
125
125
|
- lib/types/helpers.rb
|
126
126
|
- lib/types/interface_wrapper.rb
|
127
|
+
- lib/types/non_forcing_constants.rb
|
127
128
|
- lib/types/private/abstract/data.rb
|
128
129
|
- lib/types/private/abstract/declare.rb
|
129
130
|
- lib/types/private/abstract/hooks.rb
|