orthoses 1.9.0 → 1.10.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/lib/orthoses/content/environment.rb +21 -5
- data/lib/orthoses/content.rb +4 -4
- data/lib/orthoses/lazy_trace_point.rb +2 -3
- data/lib/orthoses/version.rb +1 -1
- data/sig/orthoses/content/environment.rbs +2 -1
- metadata +2 -3
- data/sig/orthoses/lazy_trace_point/signleton_method_added_hook.rbs +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae5d17d8e6292f29138e1cbfe8feaf07425c55bdc2db58e0110ab1587bef062a
|
4
|
+
data.tar.gz: 724784da1b64edba217ea75a344ba67f787a4be3f53949b2c94c5ab00b15846f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f27081184ca9da7caa25fcd25dbac29dfa2b7cd3ef32bf00f49cf7232fd182b7b7f3d13f4f88f254e0b98cf93d5fbfbb5f47a65cc4edbd1cf68822c43d143fb2
|
7
|
+
data.tar.gz: ca45ade090eb276344b7a30457d74a7467d48caeb94b875b86fbfe51777841bbc04fcb85ea4c4df9b7399b7d8d3ec7fe03f2f5fab08dda5f2908e383ebb0365f
|
@@ -33,10 +33,14 @@ module Orthoses
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def <<(decl)
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
begin
|
37
|
+
@load_env << decl
|
38
|
+
@known_env << decl
|
39
|
+
rescue RBS::DuplicatedDeclarationError => err
|
40
|
+
Orthoses.logger.warn(err.inspect)
|
41
|
+
end
|
42
|
+
|
43
|
+
self
|
40
44
|
end
|
41
45
|
|
42
46
|
def write_to(store:)
|
@@ -58,9 +62,13 @@ module Orthoses
|
|
58
62
|
content = Content.new(name: name)
|
59
63
|
content.comment = m_entry.primary.decl.comment&.string&.gsub(/^/, "# ")
|
60
64
|
content.header = header_builder.build(entry: m_entry, name_hint: name)
|
61
|
-
|
65
|
+
decls = m_entry.decls.map(&:decl)
|
66
|
+
decls_to_lines(decls).each do |line|
|
62
67
|
content << line
|
63
68
|
end
|
69
|
+
detect_mixin_and_build_content(decls).each do |mixin_content|
|
70
|
+
yield mixin_content
|
71
|
+
end
|
64
72
|
yield content
|
65
73
|
end
|
66
74
|
|
@@ -92,6 +100,14 @@ module Orthoses
|
|
92
100
|
end
|
93
101
|
end
|
94
102
|
|
103
|
+
def detect_mixin_and_build_content(decls)
|
104
|
+
decls.flat_map do |decl|
|
105
|
+
decl.members.grep(RBS::AST::Members::Mixin).map do |decl|
|
106
|
+
Content.new(name: decl.name.relative!.to_s)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
95
111
|
def decls_to_lines(decls)
|
96
112
|
out = StringIO.new
|
97
113
|
writer = RBS::Writer.new(out: out)
|
data/lib/orthoses/content.rb
CHANGED
@@ -115,16 +115,16 @@ module Orthoses
|
|
115
115
|
def build_super_class(val)
|
116
116
|
return nil unless val.superclass && val.superclass != Object
|
117
117
|
|
118
|
+
super_module_name = Utils.module_name(val.superclass)
|
119
|
+
return nil unless super_module_name
|
120
|
+
|
118
121
|
begin
|
119
122
|
# check private const
|
120
|
-
eval(val.superclass.to_s)
|
123
|
+
eval("::#{val.superclass.to_s}")
|
121
124
|
rescue NameError
|
122
125
|
return nil
|
123
126
|
end
|
124
127
|
|
125
|
-
super_module_name = Utils.module_name(val.superclass)
|
126
|
-
return nil unless super_module_name
|
127
|
-
|
128
128
|
# https://github.com/ruby/rbs/pull/977
|
129
129
|
return nil unless super_module_name != "Random::Base"
|
130
130
|
|
@@ -32,7 +32,8 @@ module Orthoses
|
|
32
32
|
end
|
33
33
|
::Module.prepend MethodAddedHook
|
34
34
|
|
35
|
-
|
35
|
+
class ::BasicObject
|
36
|
+
undef singleton_method_added
|
36
37
|
def singleton_method_added(id)
|
37
38
|
begin
|
38
39
|
if h = SINGLETON_METHOD_ADDED_HOOKS[id]
|
@@ -42,10 +43,8 @@ module Orthoses
|
|
42
43
|
end
|
43
44
|
rescue TypeError => e
|
44
45
|
end
|
45
|
-
super
|
46
46
|
end
|
47
47
|
end
|
48
|
-
::BasicObject.prepend SignletonMethodAddedHook
|
49
48
|
|
50
49
|
def enable(target: nil, &block)
|
51
50
|
return super unless target.kind_of?(String)
|
data/lib/orthoses/version.rb
CHANGED
@@ -10,13 +10,14 @@ class Orthoses::Content::Environment
|
|
10
10
|
@attribute_filter: attribute_filter?
|
11
11
|
def self.load_from_paths: (untyped paths) -> untyped
|
12
12
|
def initialize: (?method_definition_filter: method_definition_filter?, ?alias_filter: alias_filter?, ?constant_filter: constant_filter?, ?mixin_filter: mixin_filter?, ?attribute_filter: attribute_filter?) -> void
|
13
|
-
def <<: (RBS::AST::Declarations::t decl) ->
|
13
|
+
def <<: (RBS::AST::Declarations::t decl) -> self
|
14
14
|
def write_to: (store: Orthoses::store) -> void
|
15
15
|
def each: () { (Orthoses::Content) -> void } -> void
|
16
16
|
# Avoid `RBS::GenericParameterMismatchError` from like rbs_prototype_rb
|
17
17
|
# class Array # <= RBS::GenericParameterMismatchError
|
18
18
|
# end
|
19
19
|
private def avoid_generic_parameter_mismatch_error: () -> untyped
|
20
|
+
private def detect_mixin_and_build_content: (untyped decls) -> untyped
|
20
21
|
private def decls_to_lines: (untyped decls) -> untyped
|
21
22
|
type method_definition_filter = ^(RBS::AST::Members::MethodDefinition) -> boolish
|
22
23
|
type alias_filter = ^(RBS::AST::Members::Alias) -> boolish
|
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: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ksss
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08-
|
11
|
+
date: 2023-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rbs
|
@@ -101,7 +101,6 @@ files:
|
|
101
101
|
- sig/orthoses/filter.rbs
|
102
102
|
- sig/orthoses/lazy_trace_point.rbs
|
103
103
|
- sig/orthoses/lazy_trace_point/method_added_hook.rbs
|
104
|
-
- sig/orthoses/lazy_trace_point/signleton_method_added_hook.rbs
|
105
104
|
- sig/orthoses/load_rbs.rbs
|
106
105
|
- sig/orthoses/missing_name.rbs
|
107
106
|
- sig/orthoses/missing_name/missing_class.rbs
|