orthoses 0.6.0 → 0.9.0
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/Gemfile.lock +1 -1
- data/README.md +37 -1
- data/lib/orthoses/attribute.rb +20 -18
- data/lib/orthoses/avoid_recursive_ancestor_error.rb +13 -6
- data/lib/orthoses/call_tracer.rb +14 -7
- data/lib/orthoses/constant.rb +10 -2
- data/lib/orthoses/content/environment.rb +14 -0
- data/lib/orthoses/content/header_builder.rb +11 -6
- data/lib/orthoses/content.rb +5 -5
- data/lib/orthoses/delegate_class.rb +22 -8
- data/lib/orthoses/mixin.rb +40 -18
- data/lib/orthoses/utils.rb +7 -3
- data/lib/orthoses/version.rb +1 -1
- data/sig/orthoses/attribute.rbs +1 -2
- data/sig/orthoses/avoid_recursive_ancestor_error.rbs +1 -0
- data/sig/orthoses/builder.rbs +2 -2
- data/sig/orthoses/call_tracer/capture.rbs +6 -0
- data/sig/orthoses/call_tracer.rbs +1 -1
- data/sig/orthoses/const_load_error.rbs +2 -2
- data/sig/orthoses/content/duplication_checker.rbs +3 -4
- data/sig/orthoses/content/environment.rbs +2 -3
- data/sig/orthoses/content/header_builder.rbs +7 -7
- data/sig/orthoses/content.rbs +9 -11
- data/sig/orthoses/delegate_class/hook.rbs +5 -0
- data/sig/orthoses/mixin/hook.rbs +9 -0
- data/sig/orthoses/mixin.rbs +4 -2
- data/sig/orthoses/utils.rbs +5 -5
- data/sig/orthoses.rbs +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a88a402248539e68e824aeb28c7a47a17b2b8c8920c454dbec4fe87305a5999
|
4
|
+
data.tar.gz: 1c9e0aa222e72261b5b5fd09649023c61eff09043823a4eb3e98d909aff93fc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b825842ed1899b7e51ee40376845a4e869563c2fbe66e56a16ebe62672291acdb2a9e9e66a29bf4a7a8d0e3644fb6d2848b268cc2a09fbbe9adc3f85ef955872
|
7
|
+
data.tar.gz: 21bfe767137adea2246fcbb1f6883266f0b76aa1c367faafe773fcf902184374cda1ee175d4b62eee99435714dfc1bec7b1403d20db4dab5de3faabc4df98754
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -41,6 +41,38 @@ Orthoses::Builder.new do
|
|
41
41
|
end.call
|
42
42
|
```
|
43
43
|
|
44
|
+
## Utils
|
45
|
+
|
46
|
+
`Orthoses::Utils` is a collection of useful methods.
|
47
|
+
|
48
|
+
### Orthoses::Utils.unautoload!
|
49
|
+
|
50
|
+
Load all const by recursive.
|
51
|
+
|
52
|
+
### Orthoses::Utils.each_const_recursive
|
53
|
+
|
54
|
+
Yield const by recursive.
|
55
|
+
|
56
|
+
### Orthoses::Utils.rbs_defined_const?
|
57
|
+
|
58
|
+
Checks if the const name is already defined.
|
59
|
+
|
60
|
+
### Orthoses::Utils.rbs_defined_class?
|
61
|
+
|
62
|
+
Checks if the class name is already defined.
|
63
|
+
|
64
|
+
### Orthoses::Utils.rbs_environment
|
65
|
+
|
66
|
+
Fetch cached `RBS::Environment`.
|
67
|
+
|
68
|
+
### Orthoses::Utils.object_to_rbs
|
69
|
+
|
70
|
+
Convert Ruby object to RBS string.
|
71
|
+
|
72
|
+
### Orthoses::Utils.module_name
|
73
|
+
|
74
|
+
Get true module name by `Module.instance_method(:name).bind(mod).call`.
|
75
|
+
|
44
76
|
## Middlewares
|
45
77
|
|
46
78
|
### Orthoses::Constant
|
@@ -48,10 +80,14 @@ end.call
|
|
48
80
|
Add constant signature to class/module.
|
49
81
|
Signatures are predicted from constant values.
|
50
82
|
|
83
|
+
### Orthoses::Attribute
|
84
|
+
|
85
|
+
Add `attr`, `attr_accessor`, `attr_reader` and `attr_writer` to output RBS.
|
86
|
+
All type set `untyped`.
|
87
|
+
|
51
88
|
### Orthoses::Mixin
|
52
89
|
|
53
90
|
Add module include/extend/prepend definition.
|
54
|
-
It use `Module#{includeed,extended,prepended}` for capture.
|
55
91
|
|
56
92
|
### Orthoses::ObjectSpaceAll
|
57
93
|
|
data/lib/orthoses/attribute.rb
CHANGED
@@ -23,17 +23,17 @@ module Orthoses
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def call
|
26
|
-
Module.prepend(Hook)
|
26
|
+
::Module.prepend(Hook)
|
27
27
|
|
28
28
|
attr = CallTracer.new
|
29
29
|
attr_accessor = CallTracer.new
|
30
30
|
attr_reader = CallTracer.new
|
31
31
|
attr_writer = CallTracer.new
|
32
32
|
|
33
|
-
store = attr.trace(Hook.
|
34
|
-
attr_accessor.trace(Hook.
|
35
|
-
attr_reader.trace(Hook.
|
36
|
-
attr_writer.trace(Hook.
|
33
|
+
store = attr.trace(Hook.instance_method(:attr)) do
|
34
|
+
attr_accessor.trace(Hook.instance_method(:attr_accessor)) do
|
35
|
+
attr_reader.trace(Hook.instance_method(:attr_reader)) do
|
36
|
+
attr_writer.trace(Hook.instance_method(:attr_writer)) do
|
37
37
|
@loader.call
|
38
38
|
end
|
39
39
|
end
|
@@ -42,22 +42,23 @@ module Orthoses
|
|
42
42
|
|
43
43
|
store["Module"].body.delete("prepend Orthoses::Attribute::Hook")
|
44
44
|
|
45
|
-
attr.
|
46
|
-
m = method.receiver.to_s.match(/#<Class:([\w:]+)>/)
|
45
|
+
attr.captures.each do |capture|
|
46
|
+
m = capture.method.receiver.to_s.match(/#<Class:([\w:]+)>/)
|
47
47
|
if m && m[1]
|
48
48
|
receiver_name = m[1]
|
49
49
|
prefix = "self."
|
50
50
|
else
|
51
|
-
receiver_name = Utils.module_name(method.receiver) or next
|
51
|
+
receiver_name = Utils.module_name(capture.method.receiver) or next
|
52
52
|
prefix = nil
|
53
53
|
end
|
54
54
|
content = store[receiver_name]
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
55
|
+
names = capture.argument[:names]
|
56
|
+
if names[1].equal?(true)
|
57
|
+
content << "attr_accessor #{prefix}#{names[0]}: untyped"
|
58
|
+
elsif names[1].equal?(false)
|
59
|
+
content << "attr_reader #{prefix}#{names[0]}: untyped"
|
59
60
|
else
|
60
|
-
|
61
|
+
names.each do |name|
|
61
62
|
content << "attr_reader #{prefix}#{name}: untyped"
|
62
63
|
end
|
63
64
|
end
|
@@ -79,16 +80,17 @@ module Orthoses
|
|
79
80
|
private
|
80
81
|
|
81
82
|
def each_definition(call_tracer)
|
82
|
-
call_tracer.
|
83
|
-
m = method.receiver.to_s.match(/#<Class:([\w:]+)>/)
|
83
|
+
call_tracer.captures.each do |capture|
|
84
|
+
m = capture.method.receiver.to_s.match(/#<Class:([\w:]+)>/)
|
85
|
+
names = capture.argument[:names]
|
84
86
|
if m && m[1]
|
85
87
|
receiver_name = m[1]
|
86
|
-
|
88
|
+
names.each do |name|
|
87
89
|
yield [receiver_name, "self.#{name}"]
|
88
90
|
end
|
89
91
|
else
|
90
|
-
receiver_name = Utils.module_name(method.receiver) or next
|
91
|
-
|
92
|
+
receiver_name = Utils.module_name(capture.method.receiver) or next
|
93
|
+
names.each do |name|
|
92
94
|
yield [receiver_name, name]
|
93
95
|
end
|
94
96
|
end
|
@@ -7,16 +7,23 @@ module Orthoses
|
|
7
7
|
def call
|
8
8
|
@loader.call.tap do |store|
|
9
9
|
object_mixins = {}
|
10
|
-
store
|
11
|
-
|
12
|
-
when RBS::AST::Members::Mixin
|
13
|
-
object_mixins[member.name.relative!.to_s] = true
|
14
|
-
end
|
15
|
-
end
|
10
|
+
set_object_mixins_recursive(store, "Object", object_mixins)
|
11
|
+
|
16
12
|
object_mixins.each_key do |object_mixin|
|
17
13
|
store[object_mixin].header = "module #{object_mixin} : BasicObject"
|
18
14
|
end
|
19
15
|
end
|
20
16
|
end
|
17
|
+
|
18
|
+
def set_object_mixins_recursive(store, name, object_mixins)
|
19
|
+
store[name].to_decl.members.each do |member|
|
20
|
+
case member
|
21
|
+
when RBS::AST::Members::Mixin
|
22
|
+
member_name = member.name.relative!.to_s
|
23
|
+
object_mixins[member_name] = true
|
24
|
+
set_object_mixins_recursive(store, member_name, object_mixins)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
21
28
|
end
|
22
29
|
end
|
data/lib/orthoses/call_tracer.rb
CHANGED
@@ -7,16 +7,19 @@ module Orthoses
|
|
7
7
|
# scope.trace(ActiveRecord::Base.method(:scope)) do
|
8
8
|
# @loader.call
|
9
9
|
# end
|
10
|
-
# scope.
|
11
|
-
# argument[:name]
|
12
|
-
# argument[:body]
|
13
|
-
# argument[:block]
|
10
|
+
# scope.captures.each do |capture|
|
11
|
+
# capture.argument[:name]
|
12
|
+
# capture.argument[:body]
|
13
|
+
# capture.argument[:block]
|
14
14
|
# end
|
15
15
|
class CallTracer
|
16
|
-
|
16
|
+
class Capture < Struct.new(:method, :argument, keyword_init: true)
|
17
|
+
end
|
18
|
+
|
19
|
+
attr_accessor :captures
|
17
20
|
|
18
21
|
def initialize
|
19
|
-
@
|
22
|
+
@captures = []
|
20
23
|
end
|
21
24
|
|
22
25
|
def trace(target, &block)
|
@@ -46,7 +49,11 @@ module Orthoses
|
|
46
49
|
end
|
47
50
|
end
|
48
51
|
end
|
49
|
-
|
52
|
+
|
53
|
+
@captures << Capture.new(
|
54
|
+
method: called_method,
|
55
|
+
argument: argument,
|
56
|
+
)
|
50
57
|
end
|
51
58
|
t.enable(target: target, &block)
|
52
59
|
end
|
data/lib/orthoses/constant.rb
CHANGED
@@ -27,10 +27,14 @@ module Orthoses
|
|
27
27
|
Orthoses::Utils.each_const_recursive(base, on_error: @on_error) do |current, const, val|
|
28
28
|
next if current.singleton_class?
|
29
29
|
next if Utils.module_name(current).nil?
|
30
|
-
next if val.kind_of?(Module)
|
31
30
|
next if cache[[current, const]]
|
32
31
|
cache[[current, const]] = true
|
33
32
|
|
33
|
+
if val.kind_of?(Module)
|
34
|
+
will_add_key_and_content << [Utils.module_name(val), nil]
|
35
|
+
next
|
36
|
+
end
|
37
|
+
|
34
38
|
rbs = Orthoses::Utils.object_to_rbs(val, strict: @strict)
|
35
39
|
next unless rbs
|
36
40
|
next unless @if.nil? || @if.call(current, const, val, rbs)
|
@@ -38,8 +42,12 @@ module Orthoses
|
|
38
42
|
will_add_key_and_content << [Utils.module_name(current), "#{const}: #{rbs}"]
|
39
43
|
end
|
40
44
|
end
|
45
|
+
|
41
46
|
will_add_key_and_content.each do |name, line|
|
42
|
-
|
47
|
+
next unless name
|
48
|
+
content = store[name]
|
49
|
+
next unless line
|
50
|
+
content << line
|
43
51
|
end
|
44
52
|
end
|
45
53
|
end
|
@@ -86,15 +86,29 @@ module Orthoses
|
|
86
86
|
writer = RBS::Writer.new(out: out)
|
87
87
|
decls.each do |decl|
|
88
88
|
next unless decl.respond_to?(:members)
|
89
|
+
last_visibility = :public
|
89
90
|
decl.members.each do |member|
|
90
91
|
next if member.respond_to?(:members)
|
91
92
|
case member
|
92
93
|
when RBS::AST::Declarations::Constant
|
93
94
|
next unless @constant_filter.nil? || @constant_filter.call(member)
|
95
|
+
when RBS::AST::Members::MethodDefinition
|
96
|
+
if last_visibility == :private && member.kind != :singleton_instance
|
97
|
+
member.instance_variable_set(:@visibility, :private)
|
98
|
+
end
|
94
99
|
when RBS::AST::Members::Mixin
|
95
100
|
next unless @mixin_filter.nil? || @mixin_filter.call(member)
|
96
101
|
when RBS::AST::Members::Attribute
|
97
102
|
next unless @attribute_filter.nil? || @attribute_filter.call(member)
|
103
|
+
if last_visibility == :private
|
104
|
+
member.instance_variable_set(:@visibility, :private)
|
105
|
+
end
|
106
|
+
when RBS::AST::Members::Public
|
107
|
+
last_visibility = :public
|
108
|
+
next
|
109
|
+
when RBS::AST::Members::Private
|
110
|
+
last_visibility = :private
|
111
|
+
next
|
98
112
|
end
|
99
113
|
writer.write_member(member)
|
100
114
|
end
|
@@ -45,11 +45,7 @@ module Orthoses
|
|
45
45
|
def build_super_class(primary)
|
46
46
|
return nil if primary.decl.super_class.then { |s| s.nil? || s.name.relative!.to_s.then { |n| n == "Object" || n == "Random::Base" } }
|
47
47
|
|
48
|
-
context = primary
|
49
|
-
primary.outer[0, i + 1].map(&:name).inject(:+).to_namespace.absolute!
|
50
|
-
end
|
51
|
-
context.push(RBS::Namespace.root)
|
52
|
-
|
48
|
+
context = build_context(entry: primary)
|
53
49
|
super_class_name = @resolver.resolve(primary.decl.super_class.name, context: context) || primary.decl.super_class.name
|
54
50
|
if primary.decl.super_class.args.empty?
|
55
51
|
if super_class_entry = @env.class_decls[super_class_name]
|
@@ -65,7 +61,16 @@ module Orthoses
|
|
65
61
|
|
66
62
|
def build_interface(entry:, name_hint: nil)
|
67
63
|
full_name = name_hint || entry.decl.name.relative!
|
68
|
-
|
64
|
+
context = build_context(entry: entry)
|
65
|
+
resolved_name = @resolver.resolve(full_name, context: context) || full_name
|
66
|
+
"interface #{name_and_params(resolved_name.relative!, entry.decl.type_params)}"
|
67
|
+
end
|
68
|
+
|
69
|
+
def build_context(entry:)
|
70
|
+
context = entry.outer.length.times.map do |i|
|
71
|
+
entry.outer[0, i + 1].map(&:name).inject(:+).to_namespace.absolute!
|
72
|
+
end
|
73
|
+
context.push(RBS::Namespace.root)
|
69
74
|
end
|
70
75
|
|
71
76
|
def name_and_params(name, params)
|
data/lib/orthoses/content.rb
CHANGED
@@ -81,11 +81,6 @@ module Orthoses
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def auto_header
|
84
|
-
if name.split('::').last.start_with?('_')
|
85
|
-
self.header = "interface #{name}"
|
86
|
-
return
|
87
|
-
end
|
88
|
-
|
89
84
|
env = Utils.rbs_environment(collection: true)
|
90
85
|
if entry = env.class_decls[TypeName(name).absolute!]
|
91
86
|
@header = Content::HeaderBuilder.new(env: env).build(entry: entry)
|
@@ -94,6 +89,11 @@ module Orthoses
|
|
94
89
|
|
95
90
|
return unless @header.nil?
|
96
91
|
|
92
|
+
if name.split('::').last.start_with?('_')
|
93
|
+
self.header = "interface #{name}"
|
94
|
+
return
|
95
|
+
end
|
96
|
+
|
97
97
|
val = Object.const_get(name)
|
98
98
|
|
99
99
|
case val
|
@@ -2,31 +2,44 @@
|
|
2
2
|
|
3
3
|
module Orthoses
|
4
4
|
class DelegateClass
|
5
|
+
module Hook
|
6
|
+
def inherited(subclass)
|
7
|
+
super
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
5
11
|
def initialize(loader)
|
6
12
|
@loader = loader
|
7
13
|
end
|
8
14
|
|
9
15
|
def call
|
10
16
|
require 'delegate'
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
17
|
+
::Class.prepend(Hook)
|
18
|
+
|
19
|
+
inherited = CallTracer.new
|
20
|
+
|
17
21
|
delegate_class_super_map = {}
|
18
22
|
delegate_class_tracer = TracePoint.new(:return) do |tp|
|
19
23
|
return_value = tp.return_value
|
20
24
|
superclass = tp.binding.local_variable_get(:superclass)
|
21
25
|
delegate_class_super_map[return_value] = superclass
|
22
26
|
end
|
27
|
+
|
23
28
|
store = delegate_class_tracer.enable(target: method(:DelegateClass)) do
|
24
|
-
|
29
|
+
inherited.trace(Hook.instance_method(:inherited)) do
|
30
|
+
@loader.call
|
31
|
+
end
|
25
32
|
end
|
26
|
-
|
33
|
+
|
34
|
+
store["Class"].body.delete("prepend Orthoses::DelegateClass::Hook")
|
35
|
+
|
36
|
+
inherited.captures.each do |capture|
|
37
|
+
superclass = capture.method.receiver
|
27
38
|
if delegate_to_class = delegate_class_super_map[superclass]
|
39
|
+
subclass = capture.argument[:subclass]
|
28
40
|
subclass_name = Utils.module_name(subclass)
|
29
41
|
next unless subclass_name
|
42
|
+
|
30
43
|
delegate_to_class_name = Utils.module_name(delegate_to_class)
|
31
44
|
next unless delegate_to_class_name
|
32
45
|
|
@@ -34,6 +47,7 @@ module Orthoses
|
|
34
47
|
store[subclass_name].header = header
|
35
48
|
end
|
36
49
|
end
|
50
|
+
|
37
51
|
store
|
38
52
|
end
|
39
53
|
|
data/lib/orthoses/mixin.rb
CHANGED
@@ -2,49 +2,71 @@
|
|
2
2
|
|
3
3
|
module Orthoses
|
4
4
|
class Mixin
|
5
|
+
module Hook
|
6
|
+
def include(*modules)
|
7
|
+
super
|
8
|
+
end
|
9
|
+
def extend(*modules)
|
10
|
+
super
|
11
|
+
end
|
12
|
+
def prepend(*modules)
|
13
|
+
super
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
5
17
|
def initialize(loader, if: nil)
|
6
18
|
@loader = loader
|
7
19
|
@if = binding.local_variable_get(:if)
|
8
20
|
end
|
9
21
|
|
10
22
|
def call
|
11
|
-
|
12
|
-
::Module.module_eval do
|
13
|
-
define_method(:included) do |mod|
|
14
|
-
modules[mod] << [:include, self]
|
15
|
-
end
|
23
|
+
::Module.prepend(Hook)
|
16
24
|
|
17
|
-
|
18
|
-
|
19
|
-
|
25
|
+
include = CallTracer.new
|
26
|
+
extend = CallTracer.new
|
27
|
+
prepend = CallTracer.new
|
20
28
|
|
21
|
-
|
22
|
-
|
29
|
+
store = include.trace(Hook.instance_method(:include)) do
|
30
|
+
extend.trace(Hook.instance_method(:extend)) do
|
31
|
+
prepend.trace(Hook.instance_method(:prepend)) do
|
32
|
+
@loader.call
|
33
|
+
end
|
23
34
|
end
|
24
35
|
end
|
25
36
|
|
26
|
-
store
|
37
|
+
store["Module"].body.delete("prepend Orthoses::Mixin::Hook")
|
38
|
+
|
39
|
+
collect_definitions(store, include, :include)
|
40
|
+
collect_definitions(store, extend, :extend)
|
41
|
+
collect_definitions(store, prepend, :prepend)
|
42
|
+
|
43
|
+
store
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
27
47
|
|
28
|
-
|
48
|
+
def collect_definitions(store, call_tracer, how)
|
49
|
+
call_tracer.captures.each do |capture|
|
50
|
+
base_mod = capture.method.receiver
|
29
51
|
next unless base_mod.kind_of?(Module)
|
52
|
+
|
30
53
|
base_mod_name = Utils.module_name(base_mod)
|
31
54
|
next unless base_mod_name
|
32
55
|
|
33
|
-
|
56
|
+
content = store[base_mod_name]
|
57
|
+
capture.argument[:modules].each do |mod|
|
34
58
|
mod_name = Utils.module_name(mod)
|
35
59
|
next unless mod_name
|
60
|
+
|
36
61
|
known_type_params = Utils.known_type_params(mod)
|
37
62
|
next unless known_type_params.nil? || known_type_params.empty?
|
63
|
+
|
38
64
|
next unless @if.nil? || @if.call(base_mod, how, mod)
|
39
65
|
|
40
66
|
store[mod_name]
|
41
|
-
|
42
|
-
"#{how} #{mod_name}"
|
67
|
+
content << "#{how} #{mod_name}"
|
43
68
|
end
|
44
|
-
store[base_mod_name].concat(lines)
|
45
69
|
end
|
46
|
-
|
47
|
-
store
|
48
70
|
end
|
49
71
|
end
|
50
72
|
end
|
data/lib/orthoses/utils.rb
CHANGED
@@ -101,12 +101,16 @@ module Orthoses
|
|
101
101
|
def self.object_to_rbs(object, strict:)
|
102
102
|
case object
|
103
103
|
when Class, Module
|
104
|
-
|
104
|
+
if name = module_name(object)
|
105
|
+
"singleton(#{name})"
|
106
|
+
else
|
107
|
+
"untyped"
|
108
|
+
end
|
105
109
|
when Integer, Symbol, String
|
106
110
|
if strict
|
107
111
|
object.inspect
|
108
112
|
else
|
109
|
-
|
113
|
+
module_name(object.class) || 'untyped'
|
110
114
|
end
|
111
115
|
when true, false, nil
|
112
116
|
object.inspect
|
@@ -151,7 +155,7 @@ module Orthoses
|
|
151
155
|
# see also https://github.com/ruby/rbs/pull/975
|
152
156
|
'untyped'
|
153
157
|
else
|
154
|
-
|
158
|
+
module_name(object.class) || 'untyped'
|
155
159
|
end
|
156
160
|
end
|
157
161
|
|
data/lib/orthoses/version.rb
CHANGED
data/sig/orthoses/attribute.rbs
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
class Orthoses::Attribute
|
4
4
|
def initialize: (Orthoses::_Call loader) -> void
|
5
5
|
def call: () -> Orthoses::store
|
6
|
-
private
|
7
|
-
def each_definition: (untyped call_tracer) { (untyped) -> untyped } -> untyped
|
6
|
+
private def each_definition: (untyped call_tracer) { (untyped) -> untyped } -> untyped
|
8
7
|
@loader: Orthoses::_Call
|
9
8
|
end
|
data/sig/orthoses/builder.rbs
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# THIS IS GENERATED CODE from `$ rake generate_self_sig`
|
2
2
|
|
3
3
|
class Orthoses::Builder
|
4
|
-
def initialize: () { () -> untyped } -> void
|
5
|
-
def use: (untyped middleware, *untyped args, **untyped key) { () -> untyped } -> untyped
|
4
|
+
def initialize: () ?{ () -> untyped } -> void
|
5
|
+
def use: (untyped middleware, *untyped args, **untyped key) ?{ () -> untyped } -> untyped
|
6
6
|
def run: (untyped loader) -> untyped
|
7
7
|
def to_loader: () -> untyped
|
8
8
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# THIS IS GENERATED CODE from `$ rake generate_self_sig`
|
2
2
|
|
3
3
|
class Orthoses::CallTracer
|
4
|
-
attr_accessor result: Array[[ Method, Hash[Symbol, untyped] ]]
|
5
4
|
def initialize: () -> void
|
6
5
|
|
7
6
|
def trace: [T] (Method | UnboundMethod) ?{ () -> T } -> T
|
7
|
+
attr_accessor captures: Array[Capture]
|
8
8
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# THIS IS GENERATED CODE from `$ rake generate_self_sig`
|
2
2
|
|
3
3
|
class Orthoses::ConstLoadError < ::StandardError
|
4
|
+
def initialize: (root: Module, const: Symbol, error: untyped) -> void
|
5
|
+
def message: () -> ::String
|
4
6
|
attr_reader root: Module
|
5
7
|
attr_reader const: Symbol
|
6
8
|
attr_reader error: untyped
|
7
|
-
def initialize: (root: Module, const: Symbol, error: untyped) -> void
|
8
|
-
def message: () -> ::String
|
9
9
|
end
|
@@ -3,8 +3,7 @@
|
|
3
3
|
class Orthoses::Content::DuplicationChecker
|
4
4
|
def initialize: (untyped decl) -> void
|
5
5
|
def update_decl: () -> untyped
|
6
|
-
private
|
7
|
-
def
|
8
|
-
def
|
9
|
-
def member_key: (untyped member) -> untyped
|
6
|
+
private def drop_known_method_definition: (untyped uniq_map) -> untyped
|
7
|
+
private def member_to_s: (untyped member) -> untyped
|
8
|
+
private def member_key: (untyped member) -> untyped
|
10
9
|
end
|
@@ -7,12 +7,11 @@ class Orthoses::Content::Environment
|
|
7
7
|
def <<: (RBS::AST::Declarations::t decl) -> RBS::Environment
|
8
8
|
def write_to: (store: Orthoses::store) -> void
|
9
9
|
def each: () { (Orthoses::Content) -> void } -> void
|
10
|
-
private
|
11
10
|
# Avoid `RBS::GenericParameterMismatchError` from like rbs_prototype_rb
|
12
11
|
# class Array # <= RBS::GenericParameterMismatchError
|
13
12
|
# end
|
14
|
-
def avoid_generic_parameter_mismatch_error: () -> untyped
|
15
|
-
def decls_to_lines: (untyped decls) -> untyped
|
13
|
+
private def avoid_generic_parameter_mismatch_error: () -> untyped
|
14
|
+
private def decls_to_lines: (untyped decls) -> untyped
|
16
15
|
type constant_filter = ^(RBS::AST::Declarations::Constant) -> boolish
|
17
16
|
type mixin_filter = ^(RBS::AST::Members::Mixin) -> boolish
|
18
17
|
type attribute_filter = ^(RBS::AST::Members::Attribute) -> boolish
|
@@ -3,11 +3,11 @@
|
|
3
3
|
class Orthoses::Content::HeaderBuilder
|
4
4
|
def initialize: (env: untyped) -> void
|
5
5
|
def build: (entry: untyped, ?name_hint: untyped?) -> untyped
|
6
|
-
private
|
7
|
-
def
|
8
|
-
def
|
9
|
-
def
|
10
|
-
def
|
11
|
-
def name_and_params: (untyped name, untyped params) -> ::String
|
12
|
-
def name_and_args: (untyped name, untyped args) -> (::String | nil)
|
6
|
+
private def build_module: (entry: untyped, ?name_hint: untyped?) -> ::String
|
7
|
+
private def build_class: (entry: untyped, ?name_hint: untyped?) -> ::String
|
8
|
+
private def build_super_class: (untyped primary) -> (nil | untyped)
|
9
|
+
private def build_interface: (entry: untyped, ?name_hint: untyped?) -> ::String
|
10
|
+
private def build_context: (entry: untyped) -> untyped
|
11
|
+
private def name_and_params: (untyped name, untyped params) -> ::String
|
12
|
+
private def name_and_args: (untyped name, untyped args) -> (::String | nil)
|
13
13
|
end
|
data/sig/orthoses/content.rbs
CHANGED
@@ -1,21 +1,19 @@
|
|
1
1
|
# THIS IS GENERATED CODE from `$ rake generate_self_sig`
|
2
2
|
|
3
3
|
class Orthoses::Content
|
4
|
-
attr_reader name: String
|
5
|
-
attr_reader body: Array[String]
|
6
|
-
attr_accessor header: String?
|
7
4
|
def initialize: (name: String) -> void
|
8
5
|
def <<: (String) -> void
|
9
6
|
def concat: (Array[String]) -> void
|
10
7
|
def to_rbs: () -> String
|
11
8
|
def to_decl: () -> untyped
|
9
|
+
private def original_rbs: () -> ::String
|
12
10
|
|
13
|
-
private
|
14
|
-
def
|
15
|
-
|
16
|
-
def
|
17
|
-
def
|
18
|
-
|
19
|
-
|
20
|
-
|
11
|
+
private def uniqed_body_string: () -> String
|
12
|
+
private def uniqed_body_decl: () -> RBS::AST::Declarations::t
|
13
|
+
private def auto_header: () -> (nil | untyped)
|
14
|
+
private def temporary_type_params: (untyped name) -> untyped
|
15
|
+
private def type_params: (untyped name) -> untyped
|
16
|
+
attr_reader name: String
|
17
|
+
attr_reader body: Array[String]
|
18
|
+
attr_accessor header: String?
|
21
19
|
end
|
data/sig/orthoses/mixin.rbs
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# THIS IS GENERATED CODE from `$ rake generate_self_sig`
|
2
2
|
|
3
3
|
class Orthoses::Mixin
|
4
|
-
def initialize: (
|
5
|
-
def call: () ->
|
4
|
+
def initialize: (Orthoses::_Call loader) -> void
|
5
|
+
def call: () -> Orthoses::store
|
6
|
+
private def collect_definitions: (Orthoses::store store, Orthoses::CallTracer call_tracer, :include | :extend | :prepend how) -> void
|
7
|
+
@loader: Orthoses::_Call
|
6
8
|
end
|
data/sig/orthoses/utils.rbs
CHANGED
@@ -11,19 +11,19 @@ module Orthoses::Utils
|
|
11
11
|
|
12
12
|
def self.rbs_type_name: (String) -> RBS::TypeName
|
13
13
|
|
14
|
-
attr_accessor self.rbs_collection_pathname: Pathname
|
15
|
-
|
16
14
|
def self.rbs_environment: (?library: String | Array[String] | nil, ?collection: boolish, ?cache: boolish) -> RBS::Environment
|
17
15
|
|
18
16
|
def self.object_to_rbs: (untyped object, strict: bool) -> String
|
19
17
|
|
20
|
-
UNBOUND_NAME_METHOD: UnboundMethod
|
21
|
-
|
22
18
|
def self.module_name: (Module mod) -> String?
|
23
19
|
|
24
20
|
def self.module_to_type_name: (Module) -> RBS::TypeName?
|
25
21
|
|
26
|
-
def self.known_type_params: (Module | String) -> Array[RBS::AST::TypeParam]
|
22
|
+
def self.known_type_params: (Module | String) -> Array[RBS::AST::TypeParam]?
|
27
23
|
|
28
24
|
def self.new_store: () -> Orthoses::store
|
25
|
+
|
26
|
+
UNBOUND_NAME_METHOD: UnboundMethod
|
27
|
+
|
28
|
+
attr_accessor self.rbs_collection_pathname: Pathname
|
29
29
|
end
|
data/sig/orthoses.rbs
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orthoses
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ksss
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rbs
|
@@ -73,6 +73,7 @@ files:
|
|
73
73
|
- sig/orthoses/builder.rbs
|
74
74
|
- sig/orthoses/builder/call_logable.rbs
|
75
75
|
- sig/orthoses/call_tracer.rbs
|
76
|
+
- sig/orthoses/call_tracer/capture.rbs
|
76
77
|
- sig/orthoses/const_load_error.rbs
|
77
78
|
- sig/orthoses/constant.rbs
|
78
79
|
- sig/orthoses/content.rbs
|
@@ -81,9 +82,11 @@ files:
|
|
81
82
|
- sig/orthoses/content/header_builder.rbs
|
82
83
|
- sig/orthoses/create_file_by_name.rbs
|
83
84
|
- sig/orthoses/delegate_class.rbs
|
85
|
+
- sig/orthoses/delegate_class/hook.rbs
|
84
86
|
- sig/orthoses/filter.rbs
|
85
87
|
- sig/orthoses/load_rbs.rbs
|
86
88
|
- sig/orthoses/mixin.rbs
|
89
|
+
- sig/orthoses/mixin/hook.rbs
|
87
90
|
- sig/orthoses/name_space_error.rbs
|
88
91
|
- sig/orthoses/object_space_all.rbs
|
89
92
|
- sig/orthoses/pp.rbs
|
@@ -114,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
117
|
- !ruby/object:Gem::Version
|
115
118
|
version: '0'
|
116
119
|
requirements: []
|
117
|
-
rubygems_version: 3.3.
|
120
|
+
rubygems_version: 3.3.15
|
118
121
|
signing_key:
|
119
122
|
specification_version: 4
|
120
123
|
summary: Framework for Generate RBS
|