orthoses 0.6.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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