spoom 1.8.10 → 1.8.11
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/spoom/sorbet/sigils.rb +15 -0
- data/lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb +14 -5
- data/lib/spoom/version.rb +1 -1
- data/rbi/spoom.rbi +67 -30
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4112003bfcd62cb8c66104ac6c773669d20d4a5ab0b070e93a9d7633cdff7126
|
|
4
|
+
data.tar.gz: 8cee75de87ce5526c8a3e6c1cf7b7d2ae7a0b98b48a1f1ea1250959984d88ca3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e23ea3cf62bc326705b91a7618efc658f7b1bcc1df17532b9f0218766cf61ab807f956751c11389db6317c1885ada0d403d51c8b92d9d0131c0ce5b0c04442c7
|
|
7
|
+
data.tar.gz: 19bfdcbb7adbb766647ae1619450154587ccb673ad9d84b7a1f070dd3f1f9c9bef3d38f233df3b4f914e7a786832bbfe1b4fd51f972a2a4873c626a0250abbb9
|
data/lib/spoom/sorbet/sigils.rb
CHANGED
|
@@ -51,6 +51,21 @@ module Spoom
|
|
|
51
51
|
!!strictness && valid_strictness?(strictness)
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
+
# returns true if the passed content contains a valid sigil at or above the passed strictness
|
|
55
|
+
# internal sigils do not satisfy a minimum strictness
|
|
56
|
+
#: (String content, String strictness) -> bool
|
|
57
|
+
def satisfies_minimum_strictness?(content, strictness)
|
|
58
|
+
return false unless contains_valid_sigil?(content)
|
|
59
|
+
|
|
60
|
+
current_strictness = strictness_in_content(content)
|
|
61
|
+
strictness = strictness.strip
|
|
62
|
+
return false if current_strictness == STRICTNESS_INTERNAL || strictness == STRICTNESS_INTERNAL
|
|
63
|
+
|
|
64
|
+
strictness_index = VALID_STRICTNESS.index(current_strictness)
|
|
65
|
+
minimum_index = VALID_STRICTNESS.index(strictness)
|
|
66
|
+
!!strictness_index && !!minimum_index && strictness_index >= minimum_index
|
|
67
|
+
end
|
|
68
|
+
|
|
54
69
|
# returns a string which is the passed content but with the sigil updated to a new strictness
|
|
55
70
|
#: (String content, String new_strictness) -> String
|
|
56
71
|
def update_sigil(content, new_strictness)
|
|
@@ -6,7 +6,9 @@ module Spoom
|
|
|
6
6
|
module Translate
|
|
7
7
|
module RBSCommentsToSorbetSigs
|
|
8
8
|
class << self
|
|
9
|
-
|
|
9
|
+
RBS_REWRITE_PATTERN = Regexp.union([
|
|
10
|
+
"#:",
|
|
11
|
+
"#|",
|
|
10
12
|
"# @abstract",
|
|
11
13
|
"# @interface",
|
|
12
14
|
"# @sealed",
|
|
@@ -15,9 +17,16 @@ module Spoom
|
|
|
15
17
|
"# @override",
|
|
16
18
|
"# @overridable",
|
|
17
19
|
"# @without_runtime",
|
|
18
|
-
].freeze #:
|
|
19
|
-
RBS_REWRITE_PATTERN
|
|
20
|
-
|
|
20
|
+
]).freeze #: Regexp
|
|
21
|
+
private_constant :RBS_REWRITE_PATTERN
|
|
22
|
+
|
|
23
|
+
# Detects RBS comment markers (`#:`, `#|`, and supported `# @...` annotations).
|
|
24
|
+
# Use this check to skip parsing files without those markers.
|
|
25
|
+
# It does not validate RBS syntax or check the `typed:` sigil.
|
|
26
|
+
#: (String ruby_contents) -> bool
|
|
27
|
+
def contains_rbs_syntax?(ruby_contents)
|
|
28
|
+
ruby_contents.match?(RBS_REWRITE_PATTERN)
|
|
29
|
+
end
|
|
21
30
|
|
|
22
31
|
#: (
|
|
23
32
|
#| String ruby_contents,
|
|
@@ -34,7 +43,7 @@ module Spoom
|
|
|
34
43
|
erase_generic_types: false,
|
|
35
44
|
force: false
|
|
36
45
|
)
|
|
37
|
-
return ruby_contents unless
|
|
46
|
+
return ruby_contents unless contains_rbs_syntax?(ruby_contents) &&
|
|
38
47
|
(force || Sigils.contains_valid_sigil?(ruby_contents))
|
|
39
48
|
|
|
40
49
|
options = Options.new(
|
data/lib/spoom/version.rb
CHANGED
data/rbi/spoom.rbi
CHANGED
|
@@ -672,27 +672,32 @@ class Spoom::Coverage::D3::ColorPalette
|
|
|
672
672
|
sig { returns(::String) }
|
|
673
673
|
def false_color; end
|
|
674
674
|
|
|
675
|
-
|
|
675
|
+
sig { params(false_color: ::String).returns(::String) }
|
|
676
|
+
def false_color=(false_color); end
|
|
676
677
|
|
|
677
678
|
sig { returns(::String) }
|
|
678
679
|
def ignore_color; end
|
|
679
680
|
|
|
680
|
-
|
|
681
|
+
sig { params(ignore_color: ::String).returns(::String) }
|
|
682
|
+
def ignore_color=(ignore_color); end
|
|
681
683
|
|
|
682
684
|
sig { returns(::String) }
|
|
683
685
|
def strict_color; end
|
|
684
686
|
|
|
685
|
-
|
|
687
|
+
sig { params(strict_color: ::String).returns(::String) }
|
|
688
|
+
def strict_color=(strict_color); end
|
|
686
689
|
|
|
687
690
|
sig { returns(::String) }
|
|
688
691
|
def strong_color; end
|
|
689
692
|
|
|
690
|
-
|
|
693
|
+
sig { params(strong_color: ::String).returns(::String) }
|
|
694
|
+
def strong_color=(strong_color); end
|
|
691
695
|
|
|
692
696
|
sig { returns(::String) }
|
|
693
697
|
def true_color; end
|
|
694
698
|
|
|
695
|
-
|
|
699
|
+
sig { params(true_color: ::String).returns(::String) }
|
|
700
|
+
def true_color=(true_color); end
|
|
696
701
|
end
|
|
697
702
|
|
|
698
703
|
class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
|
|
@@ -939,62 +944,74 @@ class Spoom::Coverage::Snapshot
|
|
|
939
944
|
sig { returns(::Integer) }
|
|
940
945
|
def calls_typed; end
|
|
941
946
|
|
|
942
|
-
|
|
947
|
+
sig { params(calls_typed: ::Integer).returns(::Integer) }
|
|
948
|
+
def calls_typed=(calls_typed); end
|
|
943
949
|
|
|
944
950
|
sig { returns(::Integer) }
|
|
945
951
|
def calls_untyped; end
|
|
946
952
|
|
|
947
|
-
|
|
953
|
+
sig { params(calls_untyped: ::Integer).returns(::Integer) }
|
|
954
|
+
def calls_untyped=(calls_untyped); end
|
|
948
955
|
|
|
949
956
|
sig { returns(::Integer) }
|
|
950
957
|
def classes; end
|
|
951
958
|
|
|
952
|
-
|
|
959
|
+
sig { params(classes: ::Integer).returns(::Integer) }
|
|
960
|
+
def classes=(classes); end
|
|
953
961
|
|
|
954
962
|
sig { returns(T.nilable(::String)) }
|
|
955
963
|
def commit_sha; end
|
|
956
964
|
|
|
957
|
-
|
|
965
|
+
sig { params(commit_sha: T.nilable(::String)).returns(T.nilable(::String)) }
|
|
966
|
+
def commit_sha=(commit_sha); end
|
|
958
967
|
|
|
959
968
|
sig { returns(T.nilable(::Integer)) }
|
|
960
969
|
def commit_timestamp; end
|
|
961
970
|
|
|
962
|
-
|
|
971
|
+
sig { params(commit_timestamp: T.nilable(::Integer)).returns(T.nilable(::Integer)) }
|
|
972
|
+
def commit_timestamp=(commit_timestamp); end
|
|
963
973
|
|
|
964
974
|
sig { returns(::Integer) }
|
|
965
975
|
def duration; end
|
|
966
976
|
|
|
967
|
-
|
|
977
|
+
sig { params(duration: ::Integer).returns(::Integer) }
|
|
978
|
+
def duration=(duration); end
|
|
968
979
|
|
|
969
980
|
sig { returns(::Integer) }
|
|
970
981
|
def files; end
|
|
971
982
|
|
|
972
|
-
|
|
983
|
+
sig { params(files: ::Integer).returns(::Integer) }
|
|
984
|
+
def files=(files); end
|
|
973
985
|
|
|
974
986
|
sig { returns(::Integer) }
|
|
975
987
|
def methods_with_sig; end
|
|
976
988
|
|
|
977
|
-
|
|
989
|
+
sig { params(methods_with_sig: ::Integer).returns(::Integer) }
|
|
990
|
+
def methods_with_sig=(methods_with_sig); end
|
|
978
991
|
|
|
979
992
|
sig { returns(::Integer) }
|
|
980
993
|
def methods_with_sig_excluding_rbis; end
|
|
981
994
|
|
|
982
|
-
|
|
995
|
+
sig { params(methods_with_sig_excluding_rbis: ::Integer).returns(::Integer) }
|
|
996
|
+
def methods_with_sig_excluding_rbis=(methods_with_sig_excluding_rbis); end
|
|
983
997
|
|
|
984
998
|
sig { returns(::Integer) }
|
|
985
999
|
def methods_without_sig; end
|
|
986
1000
|
|
|
987
|
-
|
|
1001
|
+
sig { params(methods_without_sig: ::Integer).returns(::Integer) }
|
|
1002
|
+
def methods_without_sig=(methods_without_sig); end
|
|
988
1003
|
|
|
989
1004
|
sig { returns(::Integer) }
|
|
990
1005
|
def methods_without_sig_excluding_rbis; end
|
|
991
1006
|
|
|
992
|
-
|
|
1007
|
+
sig { params(methods_without_sig_excluding_rbis: ::Integer).returns(::Integer) }
|
|
1008
|
+
def methods_without_sig_excluding_rbis=(methods_without_sig_excluding_rbis); end
|
|
993
1009
|
|
|
994
1010
|
sig { returns(::Integer) }
|
|
995
1011
|
def modules; end
|
|
996
1012
|
|
|
997
|
-
|
|
1013
|
+
sig { params(modules: ::Integer).returns(::Integer) }
|
|
1014
|
+
def modules=(modules); end
|
|
998
1015
|
|
|
999
1016
|
sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
|
|
1000
1017
|
def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
|
|
@@ -1002,27 +1019,32 @@ class Spoom::Coverage::Snapshot
|
|
|
1002
1019
|
sig { returns(::Integer) }
|
|
1003
1020
|
def rbi_files; end
|
|
1004
1021
|
|
|
1005
|
-
|
|
1022
|
+
sig { params(rbi_files: ::Integer).returns(::Integer) }
|
|
1023
|
+
def rbi_files=(rbi_files); end
|
|
1006
1024
|
|
|
1007
1025
|
sig { returns(T::Hash[::String, ::Integer]) }
|
|
1008
1026
|
def sigils; end
|
|
1009
1027
|
|
|
1010
|
-
|
|
1028
|
+
sig { params(sigils: T::Hash[::String, ::Integer]).returns(T::Hash[::String, ::Integer]) }
|
|
1029
|
+
def sigils=(sigils); end
|
|
1011
1030
|
|
|
1012
1031
|
sig { returns(T::Hash[::String, ::Integer]) }
|
|
1013
1032
|
def sigils_excluding_rbis; end
|
|
1014
1033
|
|
|
1015
|
-
|
|
1034
|
+
sig { params(sigils_excluding_rbis: T::Hash[::String, ::Integer]).returns(T::Hash[::String, ::Integer]) }
|
|
1035
|
+
def sigils_excluding_rbis=(sigils_excluding_rbis); end
|
|
1016
1036
|
|
|
1017
1037
|
sig { returns(::Integer) }
|
|
1018
1038
|
def singleton_classes; end
|
|
1019
1039
|
|
|
1020
|
-
|
|
1040
|
+
sig { params(singleton_classes: ::Integer).returns(::Integer) }
|
|
1041
|
+
def singleton_classes=(singleton_classes); end
|
|
1021
1042
|
|
|
1022
1043
|
sig { returns(::Integer) }
|
|
1023
1044
|
def timestamp; end
|
|
1024
1045
|
|
|
1025
|
-
|
|
1046
|
+
sig { params(timestamp: ::Integer).returns(::Integer) }
|
|
1047
|
+
def timestamp=(timestamp); end
|
|
1026
1048
|
|
|
1027
1049
|
sig { returns(T::Hash[::String, T.untyped]) }
|
|
1028
1050
|
def to_h; end
|
|
@@ -1033,12 +1055,14 @@ class Spoom::Coverage::Snapshot
|
|
|
1033
1055
|
sig { returns(T.nilable(::String)) }
|
|
1034
1056
|
def version_runtime; end
|
|
1035
1057
|
|
|
1036
|
-
|
|
1058
|
+
sig { params(version_runtime: T.nilable(::String)).returns(T.nilable(::String)) }
|
|
1059
|
+
def version_runtime=(version_runtime); end
|
|
1037
1060
|
|
|
1038
1061
|
sig { returns(T.nilable(::String)) }
|
|
1039
1062
|
def version_static; end
|
|
1040
1063
|
|
|
1041
|
-
|
|
1064
|
+
sig { params(version_static: T.nilable(::String)).returns(T.nilable(::String)) }
|
|
1065
|
+
def version_static=(version_static); end
|
|
1042
1066
|
|
|
1043
1067
|
class << self
|
|
1044
1068
|
sig { params(json: ::String).returns(::Spoom::Coverage::Snapshot) }
|
|
@@ -1577,7 +1601,8 @@ class Spoom::Deadcode::Remover::NodeContext
|
|
|
1577
1601
|
sig { returns(T::Array[::Prism::Node]) }
|
|
1578
1602
|
def nesting; end
|
|
1579
1603
|
|
|
1580
|
-
|
|
1604
|
+
sig { params(nesting: T::Array[::Prism::Node]).returns(T::Array[::Prism::Node]) }
|
|
1605
|
+
def nesting=(nesting); end
|
|
1581
1606
|
|
|
1582
1607
|
sig { returns(T.nilable(::Prism::Node)) }
|
|
1583
1608
|
def next_node; end
|
|
@@ -2322,7 +2347,8 @@ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
|
|
|
2322
2347
|
sig { returns(T.nilable(::String)) }
|
|
2323
2348
|
def prefix; end
|
|
2324
2349
|
|
|
2325
|
-
|
|
2350
|
+
sig { params(prefix: T.nilable(::String)).returns(T.nilable(::String)) }
|
|
2351
|
+
def prefix=(prefix); end
|
|
2326
2352
|
|
|
2327
2353
|
sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
|
|
2328
2354
|
def print_list(objects); end
|
|
@@ -2482,7 +2508,8 @@ class Spoom::Model::Class < ::Spoom::Model::Namespace
|
|
|
2482
2508
|
sig { returns(T.nilable(::String)) }
|
|
2483
2509
|
def superclass_name; end
|
|
2484
2510
|
|
|
2485
|
-
|
|
2511
|
+
sig { params(superclass_name: T.nilable(::String)).returns(T.nilable(::String)) }
|
|
2512
|
+
def superclass_name=(superclass_name); end
|
|
2486
2513
|
end
|
|
2487
2514
|
|
|
2488
2515
|
class Spoom::Model::Comment
|
|
@@ -2879,7 +2906,8 @@ class Spoom::Printer
|
|
|
2879
2906
|
sig { returns(T.any(::IO, ::StringIO)) }
|
|
2880
2907
|
def out; end
|
|
2881
2908
|
|
|
2882
|
-
|
|
2909
|
+
sig { params(out: T.any(::IO, ::StringIO)).returns(T.any(::IO, ::StringIO)) }
|
|
2910
|
+
def out=(out); end
|
|
2883
2911
|
|
|
2884
2912
|
sig { params(string: T.nilable(::String)).void }
|
|
2885
2913
|
def print(string); end
|
|
@@ -2974,7 +3002,8 @@ class Spoom::Sorbet::Config
|
|
|
2974
3002
|
sig { returns(T::Boolean) }
|
|
2975
3003
|
def no_stdlib; end
|
|
2976
3004
|
|
|
2977
|
-
|
|
3005
|
+
sig { params(no_stdlib: T::Boolean).returns(T::Boolean) }
|
|
3006
|
+
def no_stdlib=(no_stdlib); end
|
|
2978
3007
|
|
|
2979
3008
|
sig { returns(::String) }
|
|
2980
3009
|
def options_string; end
|
|
@@ -2982,7 +3011,9 @@ class Spoom::Sorbet::Config
|
|
|
2982
3011
|
sig { returns(T::Array[::String]) }
|
|
2983
3012
|
def paths; end
|
|
2984
3013
|
|
|
2985
|
-
|
|
3014
|
+
sig { params(paths: T::Array[::String]).returns(T::Array[::String]) }
|
|
3015
|
+
def paths=(paths); end
|
|
3016
|
+
|
|
2986
3017
|
def typed_overrides; end
|
|
2987
3018
|
def typed_overrides=(_arg0); end
|
|
2988
3019
|
|
|
@@ -3216,6 +3247,9 @@ module Spoom::Sorbet::Sigils
|
|
|
3216
3247
|
sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
|
|
3217
3248
|
def file_strictness(path); end
|
|
3218
3249
|
|
|
3250
|
+
sig { params(content: ::String, strictness: ::String).returns(T::Boolean) }
|
|
3251
|
+
def satisfies_minimum_strictness?(content, strictness); end
|
|
3252
|
+
|
|
3219
3253
|
sig { params(strictness: ::String).returns(::String) }
|
|
3220
3254
|
def sigil_string(strictness); end
|
|
3221
3255
|
|
|
@@ -3322,6 +3356,9 @@ end
|
|
|
3322
3356
|
|
|
3323
3357
|
module Spoom::Sorbet::Translate::RBSCommentsToSorbetSigs
|
|
3324
3358
|
class << self
|
|
3359
|
+
sig { params(ruby_contents: ::String).returns(T::Boolean) }
|
|
3360
|
+
def contains_rbs_syntax?(ruby_contents); end
|
|
3361
|
+
|
|
3325
3362
|
sig do
|
|
3326
3363
|
params(
|
|
3327
3364
|
ruby_contents: ::String,
|