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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3fe5907a7edff87d73372b0e6f556d5f3b08a3ae6d7407447f249a25953d069e
4
- data.tar.gz: 7564345ffdc6363a5ba03bb9c70299b17cb15cdb3cc501bcbd3b221c7b0a823a
3
+ metadata.gz: 9a88a402248539e68e824aeb28c7a47a17b2b8c8920c454dbec4fe87305a5999
4
+ data.tar.gz: 1c9e0aa222e72261b5b5fd09649023c61eff09043823a4eb3e98d909aff93fc7
5
5
  SHA512:
6
- metadata.gz: 35acabbfbd4ab4c549d8cefdecc829074ade2bc041093432b3a1ae52c095f1d2e8a4420d30754dfd0a1dfb9d09f999fb2885b4f87c7e14c2c3386afff886082f
7
- data.tar.gz: 01f8881d042a106e720574902abc2227161c65c78b35277618aea2343f8be43dfdcb4d94735ce2f5a7fd62ffb5137e5c928e0bd1e9dd50cd583ecd6819c80d38
6
+ metadata.gz: b825842ed1899b7e51ee40376845a4e869563c2fbe66e56a16ebe62672291acdb2a9e9e66a29bf4a7a8d0e3644fb6d2848b268cc2a09fbbe9adc3f85ef955872
7
+ data.tar.gz: 21bfe767137adea2246fcbb1f6883266f0b76aa1c367faafe773fcf902184374cda1ee175d4b62eee99435714dfc1bec7b1403d20db4dab5de3faabc4df98754
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- orthoses (0.6.0)
4
+ orthoses (0.9.0)
5
5
  rbs (~> 2.0)
6
6
 
7
7
  GEM
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
 
@@ -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.method(:attr)) do
34
- attr_accessor.trace(Hook.method(:attr_accessor)) do
35
- attr_reader.trace(Hook.method(:attr_reader)) do
36
- attr_writer.trace(Hook.method(:attr_writer)) do
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.result.each do |method, argument|
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
- if argument[:names][1].equal?(true)
56
- content << "attr_accessor #{prefix}#{argument[:names][0]}: untyped"
57
- elsif argument[:names][1].equal?(false)
58
- content << "attr_reader #{prefix}#{argument[:names][0]}: untyped"
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
- argument[:names].each do |name|
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.result.each do |method, argument|
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
- argument[:names].each do |name|
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
- argument[:names].each do |name|
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["Object"].to_decl.members.each do |member|
11
- case member
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
@@ -7,16 +7,19 @@ module Orthoses
7
7
  # scope.trace(ActiveRecord::Base.method(:scope)) do
8
8
  # @loader.call
9
9
  # end
10
- # scope.result.each do |method, argument|
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
- attr_accessor :result
16
+ class Capture < Struct.new(:method, :argument, keyword_init: true)
17
+ end
18
+
19
+ attr_accessor :captures
17
20
 
18
21
  def initialize
19
- @result = []
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
- @result << [called_method, argument]
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
@@ -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
- store[name] << line
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.outer.length.times.map do |i|
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
- "interface #{name_and_params(full_name, entry.decl.type_params)}"
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)
@@ -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
- classes = []
12
- Class.class_eval do
13
- define_method(:inherited) do |subclass|
14
- classes << [subclass, self]
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
- @loader.call
29
+ inherited.trace(Hook.instance_method(:inherited)) do
30
+ @loader.call
31
+ end
25
32
  end
26
- classes.each do |subclass, superclass|
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
 
@@ -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
- modules = Hash.new { |h, k| h[k] = [] }
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
- define_method(:extended) do |mod|
18
- modules[mod] << [:extend, self]
19
- end
25
+ include = CallTracer.new
26
+ extend = CallTracer.new
27
+ prepend = CallTracer.new
20
28
 
21
- define_method(:prepended) do |mod|
22
- modules[mod] << [:prepend, self]
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 = @loader.call
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
- modules.each do |base_mod, how_mods|
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
- lines = how_mods.filter.map do |how, mod|
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
@@ -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
- "singleton(#{object})"
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
- Utils.module_name(object.class) || 'untyped'
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
- Utils.module_name(object.class) || 'untyped'
158
+ module_name(object.class) || 'untyped'
155
159
  end
156
160
  end
157
161
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Orthoses
4
- VERSION = "0.6.0"
4
+ VERSION = "0.9.0"
5
5
  end
@@ -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
@@ -3,5 +3,6 @@
3
3
  class Orthoses::AvoidRecursiveAncestorError
4
4
  def initialize: (Orthoses::_Call loader) -> void
5
5
  def call: () -> Orthoses::store
6
+ def set_object_mixins_recursive: (untyped store, untyped name, untyped object_mixins) -> untyped
6
7
  @loader: Orthoses::_Call
7
8
  end
@@ -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
 
@@ -0,0 +1,6 @@
1
+ # THIS IS GENERATED CODE from `$ rake generate_self_sig`
2
+
3
+ class Orthoses::CallTracer::Capture < ::Struct[untyped]
4
+ def method: () -> Method
5
+ def argument: () -> Hash[Symbol, untyped]
6
+ end
@@ -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 drop_known_method_definition: (untyped uniq_map) -> untyped
8
- def member_to_s: (untyped member) -> untyped
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 build_module: (entry: untyped, ?name_hint: untyped?) -> ::String
8
- def build_class: (entry: untyped, ?name_hint: untyped?) -> ::String
9
- def build_super_class: (untyped primary) -> (nil | untyped)
10
- def build_interface: (entry: untyped, ?name_hint: untyped?) -> ::String
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
@@ -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 original_rbs: () -> ::String
15
-
16
- def uniqed_body_string: () -> String
17
- def uniqed_body_decl: () -> RBS::AST::Declarations::t
18
- def auto_header: () -> (nil | untyped)
19
- def temporary_type_params: (untyped name) -> untyped
20
- def type_params: (untyped name) -> untyped
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
@@ -0,0 +1,5 @@
1
+ # THIS IS GENERATED CODE from `$ rake generate_self_sig`
2
+
3
+ module Orthoses::DelegateClass::Hook
4
+ def inherited: (untyped subclass) -> untyped
5
+ end
@@ -0,0 +1,9 @@
1
+ # THIS IS GENERATED CODE from `$ rake generate_self_sig`
2
+
3
+ module Orthoses::Mixin::Hook
4
+ def include: (*untyped modules) -> untyped
5
+
6
+ def extend: (*untyped modules) -> untyped
7
+
8
+ def prepend: (*untyped modules) -> untyped
9
+ end
@@ -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: (untyped loader, ?if: untyped?) -> void
5
- def call: () -> untyped
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
@@ -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
@@ -1,7 +1,7 @@
1
1
  # THIS IS GENERATED CODE from `$ rake generate_self_sig`
2
2
 
3
3
  module Orthoses
4
- VERSION: "0.6.0"
4
+ VERSION: "0.9.0"
5
5
 
6
6
  attr_accessor self.logger: ::Logger
7
7
 
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.6.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-01 00:00:00.000000000 Z
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.7
120
+ rubygems_version: 3.3.15
118
121
  signing_key:
119
122
  specification_version: 4
120
123
  summary: Framework for Generate RBS