ruby_mod_kit 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby_mod_kit.yml +1 -0
- data/.yardopts +3 -0
- data/examples/user.rb +4 -16
- data/lib/ruby_mod_kit/cli.rb +5 -0
- data/lib/ruby_mod_kit/config.rb +6 -1
- data/lib/ruby_mod_kit/core_ext/eval.rb +7 -0
- data/lib/ruby_mod_kit/core_ext/load.rb +10 -0
- data/lib/ruby_mod_kit/corrector.rb +5 -0
- data/lib/ruby_mod_kit/corrector_manager.rb +6 -0
- data/lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb +4 -0
- data/lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb +2 -0
- data/lib/ruby_mod_kit/feature/instance_variable_parameter.rb +2 -0
- data/lib/ruby_mod_kit/feature/overload/overload_mission.rb +42 -10
- data/lib/ruby_mod_kit/feature/overload.rb +1 -0
- data/lib/ruby_mod_kit/feature/type/check/arguments/add_arguments_checker_mission.rb +2 -0
- data/lib/ruby_mod_kit/feature/type/check/arguments.rb +2 -0
- data/lib/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rb +4 -0
- data/lib/ruby_mod_kit/feature/type/parameter_arrow_corrector.rb +14 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/add_magic_comment_mission.rb +3 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rb +2 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rb +2 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rb +2 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rb +2 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rb +2 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline.rb +1 -0
- data/lib/ruby_mod_kit/feature/type/return_value_colon_corrector.rb +4 -0
- data/lib/ruby_mod_kit/feature/type/type_attr_mission.rb +3 -0
- data/lib/ruby_mod_kit/feature/type/yard/type_parameter_mission.rb +2 -0
- data/lib/ruby_mod_kit/feature/type/yard/type_return_mission.rb +2 -0
- data/lib/ruby_mod_kit/feature/type/yard.rb +3 -0
- data/lib/ruby_mod_kit/feature/type.rb +2 -0
- data/lib/ruby_mod_kit/feature.rb +2 -0
- data/lib/ruby_mod_kit/generation.rb +54 -71
- data/lib/ruby_mod_kit/memo/def_parent_memo.rb +6 -0
- data/lib/ruby_mod_kit/memo/ivar_memo.rb +16 -8
- data/lib/ruby_mod_kit/memo/method_memo.rb +8 -1
- data/lib/ruby_mod_kit/memo/offset_memo.rb +4 -0
- data/lib/ruby_mod_kit/memo/overload_memo.rb +9 -1
- data/lib/ruby_mod_kit/memo/parameter_memo.rb +6 -1
- data/lib/ruby_mod_kit/memo_pad.rb +28 -0
- data/lib/ruby_mod_kit/mission.rb +2 -0
- data/lib/ruby_mod_kit/node/base_node.rb +32 -1
- data/lib/ruby_mod_kit/node/begin_node.rb +4 -0
- data/lib/ruby_mod_kit/node/call_node.rb +4 -0
- data/lib/ruby_mod_kit/node/def_node.rb +36 -0
- data/lib/ruby_mod_kit/node/def_parent_node.rb +10 -2
- data/lib/ruby_mod_kit/node/parameter_node.rb +5 -0
- data/lib/ruby_mod_kit/node/program_node.rb +3 -0
- data/lib/ruby_mod_kit/node/statements_node.rb +4 -0
- data/lib/ruby_mod_kit/node/symbol_node.rb +7 -2
- data/lib/ruby_mod_kit/node/untyped_node.rb +4 -0
- data/lib/ruby_mod_kit/node/wrap.rb +4 -0
- data/lib/ruby_mod_kit/offset_diff.rb +6 -0
- data/lib/ruby_mod_kit/version.rb +1 -1
- data/lib/ruby_mod_kit.rb +29 -3
- data/sig/generated/ruby_mod_kit/cli.rbs +5 -0
- data/sig/generated/ruby_mod_kit/config.rbs +7 -2
- data/sig/generated/ruby_mod_kit/core_ext/eval.rbs +7 -0
- data/sig/generated/ruby_mod_kit/core_ext/load.rbs +10 -0
- data/sig/generated/ruby_mod_kit/corrector.rbs +5 -0
- data/sig/generated/ruby_mod_kit/corrector_manager.rbs +6 -0
- data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rbs +4 -0
- data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/overload/overload_mission.rbs +3 -0
- data/sig/generated/ruby_mod_kit/feature/overload.rbs +1 -0
- data/sig/generated/ruby_mod_kit/feature/type/check/arguments/add_arguments_checker_mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/type/check/arguments.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rbs +4 -0
- data/sig/generated/ruby_mod_kit/feature/type/parameter_arrow_corrector.rbs +14 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/add_magic_comment_mission.rbs +3 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline.rbs +1 -0
- data/sig/generated/ruby_mod_kit/feature/type/return_value_colon_corrector.rbs +4 -0
- data/sig/generated/ruby_mod_kit/feature/type/type_attr_mission.rbs +3 -0
- data/sig/generated/ruby_mod_kit/feature/type/yard/type_parameter_mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/type/yard/type_return_mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature/type/yard.rbs +3 -0
- data/sig/generated/ruby_mod_kit/feature/type.rbs +2 -0
- data/sig/generated/ruby_mod_kit/feature.rbs +2 -0
- data/sig/generated/ruby_mod_kit/generation.rbs +31 -34
- data/sig/generated/ruby_mod_kit/memo/def_parent_memo.rbs +6 -0
- data/sig/generated/ruby_mod_kit/memo/ivar_memo.rbs +16 -8
- data/sig/generated/ruby_mod_kit/memo/method_memo.rbs +8 -1
- data/sig/generated/ruby_mod_kit/memo/offset_memo.rbs +4 -0
- data/sig/generated/ruby_mod_kit/memo/overload_memo.rbs +8 -0
- data/sig/generated/ruby_mod_kit/memo/parameter_memo.rbs +6 -1
- data/sig/generated/ruby_mod_kit/memo_pad.rbs +19 -0
- data/sig/generated/ruby_mod_kit/mission.rbs +2 -0
- data/sig/generated/ruby_mod_kit/node/base_node.rbs +31 -2
- data/sig/generated/ruby_mod_kit/node/begin_node.rbs +4 -0
- data/sig/generated/ruby_mod_kit/node/call_node.rbs +4 -0
- data/sig/generated/ruby_mod_kit/node/def_node.rbs +24 -0
- data/sig/generated/ruby_mod_kit/node/def_parent_node.rbs +11 -3
- data/sig/generated/ruby_mod_kit/node/parameter_node.rbs +5 -0
- data/sig/generated/ruby_mod_kit/node/program_node.rbs +3 -0
- data/sig/generated/ruby_mod_kit/node/statements_node.rbs +4 -0
- data/sig/generated/ruby_mod_kit/node/symbol_node.rbs +8 -3
- data/sig/generated/ruby_mod_kit/node/untyped_node.rbs +4 -0
- data/sig/generated/ruby_mod_kit/node/wrap.rbs +4 -0
- data/sig/generated/ruby_mod_kit/offset_diff.rbs +6 -0
- data/sig/generated/ruby_mod_kit.rbs +31 -6
- metadata +3 -2
@@ -9,6 +9,7 @@ module RubyModKit
|
|
9
9
|
# @rbs @prism_node: Prism::DefNode
|
10
10
|
# @rbs @parent: Node::BaseNode
|
11
11
|
# @rbs @prev: Node::BaseNode | nil
|
12
|
+
# @rbs @body_node: Node::StatementsNode | Node::BeginNode | nil
|
12
13
|
|
13
14
|
private attr_reader :prism_node #: Prism::DefNode
|
14
15
|
attr_reader :parent #: Node::BaseNode
|
@@ -18,6 +19,10 @@ module RubyModKit
|
|
18
19
|
# @rbs parent: Node::BaseNode
|
19
20
|
# @rbs prev: Node::BaseNode | nil
|
20
21
|
# @rbs return: void
|
22
|
+
# @param prism_node [Prism::DefNode]
|
23
|
+
# @param parent [Node::BaseNode]
|
24
|
+
# @param prev [Node::BaseNode, nil]
|
25
|
+
# @return [void]
|
21
26
|
def initialize(prism_node, parent:, prev: nil)
|
22
27
|
@prism_node = prism_node
|
23
28
|
@parent = parent
|
@@ -28,34 +33,65 @@ module RubyModKit
|
|
28
33
|
end
|
29
34
|
|
30
35
|
# @rbs return: Symbol
|
36
|
+
# @return [Symbol]
|
31
37
|
def name
|
32
38
|
@prism_node.name
|
33
39
|
end
|
34
40
|
|
35
41
|
# @rbs return: Prism::Location | nil
|
42
|
+
# @return [Prism::Location, nil]
|
36
43
|
def body_location
|
37
44
|
prism_node.body&.location
|
38
45
|
end
|
39
46
|
|
40
47
|
# @rbs return: Prism::Location | nil
|
48
|
+
# @return [Prism::Location, nil]
|
41
49
|
def lparen_loc
|
42
50
|
@prism_node.lparen_loc
|
43
51
|
end
|
44
52
|
|
45
53
|
# @rbs return: Prism::Location | nil
|
54
|
+
# @return [Prism::Location, nil]
|
46
55
|
def rparen_loc
|
47
56
|
@prism_node.rparen_loc
|
48
57
|
end
|
49
58
|
|
50
59
|
# @rbs return: Prism::Location
|
60
|
+
# @return [Prism::Location]
|
51
61
|
def name_loc
|
52
62
|
@prism_node.name_loc
|
53
63
|
end
|
54
64
|
|
55
65
|
# @rbs return: Prism::Location | nil
|
66
|
+
# @return [Prism::Location, nil]
|
56
67
|
def end_keyword_loc
|
57
68
|
@prism_node.end_keyword_loc
|
58
69
|
end
|
70
|
+
|
71
|
+
# @rbs prism_child_node: Prism::Node
|
72
|
+
# @rbs prev: Node::BaseNode | nil
|
73
|
+
# @rbs return: Node::BaseNode
|
74
|
+
# @param prism_child_node [Prism::Node]
|
75
|
+
# @param prev [Node::BaseNode, nil]
|
76
|
+
# @return [Node::BaseNode]
|
77
|
+
def wrap(prism_child_node, prev: nil)
|
78
|
+
child_node = super
|
79
|
+
if prism_child_node == @prism_node.body
|
80
|
+
case child_node
|
81
|
+
when Node::StatementsNode, Node::BeginNode
|
82
|
+
@body_node = child_node
|
83
|
+
end
|
84
|
+
end
|
85
|
+
child_node
|
86
|
+
end
|
87
|
+
|
88
|
+
# @rbs return: Node::StatementsNode | Node::BeginNode | nil
|
89
|
+
# @return [Node::StatementsNode, Node::BeginNode, nil]
|
90
|
+
def body_node
|
91
|
+
# body_node will be set in #children
|
92
|
+
children
|
93
|
+
@body_node
|
94
|
+
end
|
59
95
|
end
|
60
96
|
end
|
61
97
|
end
|
@@ -7,7 +7,7 @@ module RubyModKit
|
|
7
7
|
# Transpiler program node
|
8
8
|
class DefParentNode < Node::BaseNode
|
9
9
|
# @rbs @prism_node: Prism::ClassNode | Prism::ModuleNode
|
10
|
-
# @rbs @body_node:
|
10
|
+
# @rbs @body_node: Node::StatementsNode | nil
|
11
11
|
# @rbs @parent: Node::BaseNode
|
12
12
|
# @rbs @prev: Node::BaseNode | nil
|
13
13
|
|
@@ -19,6 +19,10 @@ module RubyModKit
|
|
19
19
|
# @rbs parent: Node::BaseNode
|
20
20
|
# @rbs prev: Node::BaseNode | nil
|
21
21
|
# @rbs return: void
|
22
|
+
# @param prism_node [Prism::ClassNode, Prism::ModuleNode]
|
23
|
+
# @param parent [Node::BaseNode]
|
24
|
+
# @param prev [Node::BaseNode, nil]
|
25
|
+
# @return [void]
|
22
26
|
def initialize(prism_node, parent:, prev: nil)
|
23
27
|
@prism_node = prism_node
|
24
28
|
@parent = parent
|
@@ -31,13 +35,17 @@ module RubyModKit
|
|
31
35
|
# @rbs prism_child_node: Prism::Node
|
32
36
|
# @rbs prev: Node::BaseNode | nil
|
33
37
|
# @rbs return: Node::BaseNode
|
38
|
+
# @param prism_child_node [Prism::Node]
|
39
|
+
# @param prev [Node::BaseNode, nil]
|
40
|
+
# @return [Node::BaseNode]
|
34
41
|
def wrap(prism_child_node, prev: nil)
|
35
42
|
child_node = super
|
36
43
|
@body_node = child_node if prism_child_node == @prism_node.body && child_node.is_a?(Node::StatementsNode)
|
37
44
|
child_node
|
38
45
|
end
|
39
46
|
|
40
|
-
# @rbs return:
|
47
|
+
# @rbs return: Node::StatementsNode | nil
|
48
|
+
# @return [Node::StatementsNode, nil]
|
41
49
|
def body_node
|
42
50
|
# body_node will be set in #children
|
43
51
|
children
|
@@ -23,6 +23,10 @@ module RubyModKit
|
|
23
23
|
# @rbs parent: Node::BaseNode
|
24
24
|
# @rbs prev: Node::BaseNode | nil
|
25
25
|
# @rbs return: void
|
26
|
+
# @param prism_node [prism_node]
|
27
|
+
# @param parent [Node::BaseNode]
|
28
|
+
# @param prev [Node::BaseNode, nil]
|
29
|
+
# @return [void]
|
26
30
|
def initialize(prism_node, parent:, prev: nil)
|
27
31
|
@prism_node = prism_node
|
28
32
|
@parent = parent
|
@@ -38,6 +42,7 @@ module RubyModKit
|
|
38
42
|
end
|
39
43
|
|
40
44
|
# @rbs return: Symbol | nil
|
45
|
+
# @return [Symbol, nil]
|
41
46
|
def name
|
42
47
|
@prism_node.name
|
43
48
|
end
|
@@ -12,6 +12,8 @@ module RubyModKit
|
|
12
12
|
|
13
13
|
# @rbs prism_node: Prism::ProgramNode
|
14
14
|
# @rbs return: void
|
15
|
+
# @param prism_node [Prism::ProgramNode]
|
16
|
+
# @return [void]
|
15
17
|
def initialize(prism_node)
|
16
18
|
@prism_node = prism_node
|
17
19
|
raise RubyModKit::Error unless prism_node.is_a?(Prism::ProgramNode)
|
@@ -20,6 +22,7 @@ module RubyModKit
|
|
20
22
|
end
|
21
23
|
|
22
24
|
# @rbs return: nil
|
25
|
+
# @return [nil]
|
23
26
|
def parent
|
24
27
|
nil
|
25
28
|
end
|
@@ -18,6 +18,10 @@ module RubyModKit
|
|
18
18
|
# @rbs parent: Node::BaseNode
|
19
19
|
# @rbs prev: Node::BaseNode | nil
|
20
20
|
# @rbs return: void
|
21
|
+
# @param prism_node [Prism::StatementsNode]
|
22
|
+
# @param parent [Node::BaseNode]
|
23
|
+
# @param prev [Node::BaseNode, nil]
|
24
|
+
# @return [void]
|
21
25
|
def initialize(prism_node, parent:, prev: nil)
|
22
26
|
@prism_node = prism_node
|
23
27
|
@parent = parent
|
@@ -9,7 +9,7 @@ module RubyModKit
|
|
9
9
|
# @rbs @prism_node: Prism::SymbolNode
|
10
10
|
# @rbs @parent: Node::BaseNode
|
11
11
|
# @rbs @prev: Node::BaseNode | nil
|
12
|
-
# @rbs @value:
|
12
|
+
# @rbs @value: Symbol | nil
|
13
13
|
|
14
14
|
private attr_reader :prism_node #: Prism::SymbolNode
|
15
15
|
attr_reader :parent #: Node::BaseNode
|
@@ -19,6 +19,10 @@ module RubyModKit
|
|
19
19
|
# @rbs parent: Node::BaseNode
|
20
20
|
# @rbs prev: Node::BaseNode | nil
|
21
21
|
# @rbs return: void
|
22
|
+
# @param prism_node [Prism::SymbolNode]
|
23
|
+
# @param parent [Node::BaseNode]
|
24
|
+
# @param prev [Node::BaseNode, nil]
|
25
|
+
# @return [void]
|
22
26
|
def initialize(prism_node, parent:, prev: nil)
|
23
27
|
@prism_node = prism_node
|
24
28
|
@parent = parent
|
@@ -28,7 +32,8 @@ module RubyModKit
|
|
28
32
|
super()
|
29
33
|
end
|
30
34
|
|
31
|
-
# @rbs return:
|
35
|
+
# @rbs return: Symbol | nil
|
36
|
+
# @return [Symbol, nil]
|
32
37
|
def value
|
33
38
|
return @value if defined?(@value)
|
34
39
|
|
@@ -18,6 +18,10 @@ module RubyModKit
|
|
18
18
|
# @rbs parent: Node::BaseNode
|
19
19
|
# @rbs prev: Node::BaseNode | nil
|
20
20
|
# @rbs return: void
|
21
|
+
# @param prism_node [Prism::Node]
|
22
|
+
# @param parent [Node::BaseNode]
|
23
|
+
# @param prev [Node::BaseNode, nil]
|
24
|
+
# @return [void]
|
21
25
|
def initialize(prism_node, parent:, prev: nil)
|
22
26
|
@prism_node = prism_node
|
23
27
|
@parent = parent
|
@@ -18,6 +18,10 @@ module RubyModKit
|
|
18
18
|
# @rbs parent: Node::BaseNode
|
19
19
|
# @rbs prev: Node::BaseNode | nil
|
20
20
|
# @rbs return: Node::BaseNode
|
21
|
+
# @param prism_node [Prism::Node]
|
22
|
+
# @param parent [Node::BaseNode]
|
23
|
+
# @param prev [Node::BaseNode, nil]
|
24
|
+
# @return [Node::BaseNode]
|
21
25
|
def wrap(prism_node, parent:, prev: nil)
|
22
26
|
case prism_node
|
23
27
|
when Prism::BeginNode
|
@@ -9,6 +9,7 @@ module RubyModKit
|
|
9
9
|
# @rbs @offsets: Array[Integer]
|
10
10
|
|
11
11
|
# @rbs return: void
|
12
|
+
# @return [void]
|
12
13
|
def initialize
|
13
14
|
@diffs = {}
|
14
15
|
@offsets = []
|
@@ -16,6 +17,8 @@ module RubyModKit
|
|
16
17
|
|
17
18
|
# @rbs src_offset: Integer
|
18
19
|
# @rbs return: Integer
|
20
|
+
# @param src_offset [Integer]
|
21
|
+
# @return [Integer]
|
19
22
|
def [](src_offset)
|
20
23
|
dst_offset = src_offset
|
21
24
|
@offsets.each do |offset|
|
@@ -31,6 +34,9 @@ module RubyModKit
|
|
31
34
|
# @rbs src_offset: Integer
|
32
35
|
# @rbs new_diff: Integer
|
33
36
|
# @rbs return: void
|
37
|
+
# @param src_offset [Integer]
|
38
|
+
# @param new_diff [Integer]
|
39
|
+
# @return [void]
|
34
40
|
def insert(src_offset, new_diff)
|
35
41
|
if @diffs[src_offset]
|
36
42
|
@diffs[src_offset] += new_diff
|
data/lib/ruby_mod_kit/version.rb
CHANGED
data/lib/ruby_mod_kit.rb
CHANGED
@@ -7,15 +7,23 @@ require "prism"
|
|
7
7
|
|
8
8
|
# The root namespace for ruby_mod_kit.
|
9
9
|
module RubyModKit
|
10
|
+
# An internal error because of RubyModKit implementation
|
10
11
|
class Error < StandardError; end
|
12
|
+
|
13
|
+
# A SyntaxError of rbm script
|
11
14
|
class SyntaxError < ::SyntaxError; end
|
12
15
|
|
13
16
|
class << self
|
14
17
|
# @rbs file: String
|
15
18
|
# @rbs *args: String
|
16
19
|
# @rbs output: String | nil
|
17
|
-
# @rbs config:
|
20
|
+
# @rbs config: Config | nil
|
18
21
|
# @rbs return: void
|
22
|
+
# @param file [String]
|
23
|
+
# @param args [String]
|
24
|
+
# @param output [String, nil]
|
25
|
+
# @param config [Config, nil]
|
26
|
+
# @return [void]
|
19
27
|
def execute_file(file, *args, output: nil, config: nil)
|
20
28
|
rb_script = transpile_file(file, output: output, config: config)
|
21
29
|
if output
|
@@ -27,8 +35,12 @@ module RubyModKit
|
|
27
35
|
|
28
36
|
# @rbs file: String
|
29
37
|
# @rbs output: String | IO | nil
|
30
|
-
# @rbs config:
|
38
|
+
# @rbs config: Config | nil
|
31
39
|
# @rbs return: String
|
40
|
+
# @param file [String]
|
41
|
+
# @param output [String, IO, nil]
|
42
|
+
# @param config [Config, nil]
|
43
|
+
# @return [String]
|
32
44
|
def transpile_file(file, output: nil, config: nil)
|
33
45
|
rb_script = transpile(File.read(file), filename: file, config: config)
|
34
46
|
case output
|
@@ -42,8 +54,12 @@ module RubyModKit
|
|
42
54
|
|
43
55
|
# @rbs src: String
|
44
56
|
# @rbs filename: String | nil
|
45
|
-
# @rbs config:
|
57
|
+
# @rbs config: Config | nil
|
46
58
|
# @rbs return: String
|
59
|
+
# @param src [String]
|
60
|
+
# @param filename [String, nil]
|
61
|
+
# @param config [Config, nil]
|
62
|
+
# @return [String]
|
47
63
|
def transpile(src, filename: nil, config: nil)
|
48
64
|
Generation.resolve(src, filename: filename, config: config).script
|
49
65
|
end
|
@@ -51,12 +67,17 @@ module RubyModKit
|
|
51
67
|
# @rbs file: String
|
52
68
|
# @rbs *args: String
|
53
69
|
# @rbs return: void
|
70
|
+
# @param file [String]
|
71
|
+
# @param args [String]
|
72
|
+
# @return [void]
|
54
73
|
def execute_rb_file(file, *args)
|
55
74
|
system(RbConfig.ruby, file, *args)
|
56
75
|
end
|
57
76
|
|
58
77
|
# @rbs path: String
|
59
78
|
# @rbs return: String
|
79
|
+
# @param path [String]
|
80
|
+
# @return [String]
|
60
81
|
def rb_path(path)
|
61
82
|
path.sub(/(?:\.rbm)?$/, ".rb")
|
62
83
|
end
|
@@ -64,6 +85,9 @@ module RubyModKit
|
|
64
85
|
# @rbs rb_script: String
|
65
86
|
# @rbs *args: String
|
66
87
|
# @rbs return: void
|
88
|
+
# @param rb_script [String]
|
89
|
+
# @param args [String]
|
90
|
+
# @return [void]
|
67
91
|
def execute_rb(rb_script, *args)
|
68
92
|
ARGV.replace(args)
|
69
93
|
eval(rb_script, TOPLEVEL_BINDING) # rubocop:disable Security/Eval
|
@@ -71,6 +95,8 @@ module RubyModKit
|
|
71
95
|
|
72
96
|
# @rbs type: String
|
73
97
|
# @rbs return: String
|
98
|
+
# @param type [String]
|
99
|
+
# @return [String]
|
74
100
|
def unify_type(type)
|
75
101
|
type[/\A\(([^()]*)\)\z/, 1] || type
|
76
102
|
end
|
@@ -5,15 +5,20 @@ module RubyModKit
|
|
5
5
|
class CLI < Thor
|
6
6
|
# @rbs *args: String
|
7
7
|
# @rbs return: void
|
8
|
+
# @param args [String]
|
9
|
+
# @return [void]
|
8
10
|
def exec: (*String args) -> void
|
9
11
|
|
10
12
|
# @rbs *args: String
|
11
13
|
# @rbs return: void
|
14
|
+
# @param args [String]
|
15
|
+
# @return [void]
|
12
16
|
def transpile: (*String args) -> void
|
13
17
|
|
14
18
|
private
|
15
19
|
|
16
20
|
# @rbs return: Config | nil
|
21
|
+
# @return [Config, nil]
|
17
22
|
def config: () -> (Config | nil)
|
18
23
|
end
|
19
24
|
end
|
@@ -11,11 +11,16 @@ module RubyModKit
|
|
11
11
|
|
12
12
|
# @rbs features: Array[String]
|
13
13
|
# @rbs return: void
|
14
|
+
# @param features [Array<String>]
|
15
|
+
# @return [void]
|
14
16
|
def initialize: (?features: Array[String]) -> void
|
15
17
|
|
16
18
|
# @rbs path: String
|
17
|
-
# @rbs if_none:
|
19
|
+
# @rbs if_none: Symbol | nil
|
18
20
|
# @rbs return: Config | nil
|
19
|
-
|
21
|
+
# @param path [String]
|
22
|
+
# @param if_none [Symbol, nil]
|
23
|
+
# @return [Config, nil]
|
24
|
+
def self.load: (String path, ?if_none: Symbol | nil) -> (Config | nil)
|
20
25
|
end
|
21
26
|
end
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
# Define RubyMotKit.eval
|
4
4
|
module RubyModKit
|
5
|
+
# the namespace for language core extensions
|
5
6
|
module CoreExt
|
6
7
|
# the extension for eval
|
7
8
|
module Eval
|
@@ -11,6 +12,12 @@ module RubyModKit
|
|
11
12
|
# @rbs lineno: Integer
|
12
13
|
# @rbs transpile: bool
|
13
14
|
# @rbs return: Object
|
15
|
+
# @param expr [String]
|
16
|
+
# @param binding [Binding]
|
17
|
+
# @param fname [String]
|
18
|
+
# @param lineno [Integer]
|
19
|
+
# @param transpile [Boolean]
|
20
|
+
# @return [Object]
|
14
21
|
def self?.eval: (String expr, ?Binding binding, ?String fname, ?Integer lineno, ?transpile: bool) -> Object
|
15
22
|
end
|
16
23
|
end
|
@@ -10,21 +10,31 @@ module RubyModKit
|
|
10
10
|
# @rbs path: String
|
11
11
|
# @rbs wrap: bool
|
12
12
|
# @rbs return: bool
|
13
|
+
# @param path [String]
|
14
|
+
# @param wrap [Boolean]
|
15
|
+
# @return [Boolean]
|
13
16
|
def self?.load: (String path, ?bool wrap) -> bool
|
14
17
|
|
15
18
|
# @rbs path: String
|
16
19
|
# @rbs return: bool
|
20
|
+
# @param path [String]
|
21
|
+
# @return [Boolean]
|
17
22
|
def self?.require: (String path) -> bool
|
18
23
|
|
19
24
|
# @rbs return: Array[String]
|
25
|
+
# @return [Array<String>]
|
20
26
|
def self.loaded_features: () -> Array[String]
|
21
27
|
|
22
28
|
# @rbs return: Array[String]
|
29
|
+
# @return [Array<String>]
|
23
30
|
def self.load_path: () -> Array[String]
|
24
31
|
|
25
32
|
# @rbs path: String
|
26
33
|
# @rbs expanded: bool
|
27
34
|
# @rbs return: String | nil
|
35
|
+
# @param path [String]
|
36
|
+
# @param expanded [Boolean]
|
37
|
+
# @return [String, nil]
|
28
38
|
def self.require_path: (String path, ?expanded: bool) -> (String | nil)
|
29
39
|
end
|
30
40
|
end
|
@@ -4,14 +4,19 @@ module RubyModKit
|
|
4
4
|
# the base class of corrector
|
5
5
|
class Corrector
|
6
6
|
# @rbs return: Array[Symbol]
|
7
|
+
# @return [Array<Symbol>]
|
7
8
|
def correctable_error_types: () -> Array[Symbol]
|
8
9
|
|
9
10
|
# @rbs _parse_error: Prism::ParseError
|
10
11
|
# @rbs _generation: Generation
|
11
12
|
# @rbs return: void
|
13
|
+
# @param _parse_error [Prism::ParseError]
|
14
|
+
# @param _generation [Generation]
|
15
|
+
# @return [void]
|
12
16
|
def correct: (untyped _parse_error, untyped _generation) -> void
|
13
17
|
|
14
18
|
# @rbs return: void
|
19
|
+
# @return [void]
|
15
20
|
def setup: () -> void
|
16
21
|
end
|
17
22
|
end
|
@@ -9,14 +9,20 @@ module RubyModKit
|
|
9
9
|
|
10
10
|
# @rbs features: Array[Feature]
|
11
11
|
# @rbs return: void
|
12
|
+
# @param features [Array<Feature>]
|
13
|
+
# @return [void]
|
12
14
|
def initialize: (Array[Feature] features) -> void
|
13
15
|
|
14
16
|
# @rbs generation: Generation
|
15
17
|
# @rbs return: bool
|
18
|
+
# @param generation [Generation]
|
19
|
+
# @return [Boolean]
|
16
20
|
def perform: (Generation generation) -> bool
|
17
21
|
|
18
22
|
# @rbs generation: Generation
|
19
23
|
# @rbs return: void
|
24
|
+
# @param generation [Generation]
|
25
|
+
# @return [void]
|
20
26
|
def check_prev_errors: (Generation generation) -> void
|
21
27
|
end
|
22
28
|
end
|
@@ -6,11 +6,15 @@ module RubyModKit
|
|
6
6
|
# the class to correct `def foo(@bar) ...` -> `def foo(bar) ...`
|
7
7
|
class InstanceVariableParameterCorrector < Corrector
|
8
8
|
# @rbs return: Array[Symbol]
|
9
|
+
# @return [Array<Symbol>]
|
9
10
|
def correctable_error_types: () -> Array[Symbol]
|
10
11
|
|
11
12
|
# @rbs parse_error: Prism::ParseError
|
12
13
|
# @rbs generation: Generation
|
13
14
|
# @rbs return: void
|
15
|
+
# @param parse_error [Prism::ParseError]
|
16
|
+
# @param generation [Generation]
|
17
|
+
# @return [void]
|
14
18
|
def correct: (Prism::ParseError parse_error, Generation generation) -> void
|
15
19
|
end
|
16
20
|
end
|
@@ -5,9 +5,11 @@ module RubyModKit
|
|
5
5
|
# namespace for instance_variable parameter feature
|
6
6
|
class InstanceVariableParameter < Feature
|
7
7
|
# @rbs return: Array[Corrector]
|
8
|
+
# @return [Array<Corrector>]
|
8
9
|
def create_correctors: () -> Array[Corrector]
|
9
10
|
|
10
11
|
# @rbs return: Array[Mission]
|
12
|
+
# @return [Array<Mission>]
|
11
13
|
def create_missions: () -> Array[Mission]
|
12
14
|
end
|
13
15
|
end
|
@@ -10,10 +10,13 @@ module RubyModKit
|
|
10
10
|
OVERLOAD_METHOD_MAP: Hash[Symbol, String]
|
11
11
|
|
12
12
|
# @rbs return: void
|
13
|
+
# @return [void]
|
13
14
|
def initialize: () -> void
|
14
15
|
|
15
16
|
# @rbs generation: Generation
|
16
17
|
# @rbs return: bool
|
18
|
+
# @param generation [Generation]
|
19
|
+
# @return [Boolean]
|
17
20
|
def perform: (Generation generation) -> bool
|
18
21
|
end
|
19
22
|
end
|
@@ -3,10 +3,12 @@
|
|
3
3
|
module RubyModKit
|
4
4
|
class Feature
|
5
5
|
class Type
|
6
|
+
# namespace for type checker
|
6
7
|
module Check
|
7
8
|
# namespace for arguments type checker
|
8
9
|
class Arguments < Feature
|
9
10
|
# @rbs return: Array[Mission]
|
11
|
+
# @return [Array<Mission>]
|
10
12
|
def create_missions: () -> Array[Mission]
|
11
13
|
end
|
12
14
|
end
|
@@ -12,11 +12,15 @@ module RubyModKit
|
|
12
12
|
REGEXP: Regexp
|
13
13
|
|
14
14
|
# @rbs return: Array[Symbol]
|
15
|
+
# @return [Array<Symbol>]
|
15
16
|
def correctable_error_types: () -> Array[Symbol]
|
16
17
|
|
17
18
|
# @rbs parse_error: Prism::ParseError
|
18
19
|
# @rbs generation: Generation
|
19
20
|
# @rbs return: void
|
21
|
+
# @param parse_error [Prism::ParseError]
|
22
|
+
# @param generation [Generation]
|
23
|
+
# @return [void]
|
20
24
|
def correct: (Prism::ParseError parse_error, Generation generation) -> void
|
21
25
|
end
|
22
26
|
end
|
@@ -8,29 +8,43 @@ module RubyModKit
|
|
8
8
|
@last_parameter_offsets: Set[Integer]
|
9
9
|
|
10
10
|
# @rbs return: Array[Symbol]
|
11
|
+
# @return [Array<Symbol>]
|
11
12
|
def correctable_error_types: () -> Array[Symbol]
|
12
13
|
|
13
14
|
# @rbs return: void
|
15
|
+
# @return [void]
|
14
16
|
def setup: () -> void
|
15
17
|
|
16
18
|
# @rbs parse_error: Prism::ParseError
|
17
19
|
# @rbs generation: Generation
|
18
20
|
# @rbs return: void
|
21
|
+
# @param parse_error [Prism::ParseError]
|
22
|
+
# @param generation [Generation]
|
23
|
+
# @return [void]
|
19
24
|
def correct: (Prism::ParseError parse_error, Generation generation) -> void
|
20
25
|
|
21
26
|
# @rbs parse_error: Prism::ParseError
|
22
27
|
# @rbs generation: Generation
|
23
28
|
# @rbs return: void
|
29
|
+
# @param parse_error [Prism::ParseError]
|
30
|
+
# @param generation [Generation]
|
31
|
+
# @return [void]
|
24
32
|
def remove_arrow_before_parameter: (Prism::ParseError parse_error, Generation generation) -> void
|
25
33
|
|
26
34
|
# @rbs parse_error: Prism::ParseError
|
27
35
|
# @rbs generation: Generation
|
28
36
|
# @rbs return: void
|
37
|
+
# @param parse_error [Prism::ParseError]
|
38
|
+
# @param generation [Generation]
|
39
|
+
# @return [void]
|
29
40
|
def remove_arrow_after_quailifier: (Prism::ParseError parse_error, Generation generation) -> void
|
30
41
|
|
31
42
|
# @rbs parse_error: Prism::ParseError
|
32
43
|
# @rbs generation: Generation
|
33
44
|
# @rbs return: void
|
45
|
+
# @param parse_error [Prism::ParseError]
|
46
|
+
# @param generation [Generation]
|
47
|
+
# @return [void]
|
34
48
|
def wrap_parameter_type_for_next_parse: (Prism::ParseError parse_error, Generation generation) -> void
|
35
49
|
end
|
36
50
|
end
|
@@ -9,10 +9,13 @@ module RubyModKit
|
|
9
9
|
@reloaded: bool
|
10
10
|
|
11
11
|
# @rbs return: void
|
12
|
+
# @return [void]
|
12
13
|
def initialize: () -> void
|
13
14
|
|
14
15
|
# @rbs generation: Generation
|
15
16
|
# @rbs return: bool
|
17
|
+
# @param generation [Generation]
|
18
|
+
# @return [Boolean]
|
16
19
|
def perform: (Generation generation) -> bool
|
17
20
|
end
|
18
21
|
end
|