orthoses 1.9.0 → 1.10.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: dd4d2682b08812b2f8fa633aa299702d38fd509439e4e2ac0b8751a64358b32a
4
- data.tar.gz: 28118eed7d772c490670f83277ccdabc4d2938ca329f5051f8aebd40be1f08a6
3
+ metadata.gz: ae5d17d8e6292f29138e1cbfe8feaf07425c55bdc2db58e0110ab1587bef062a
4
+ data.tar.gz: 724784da1b64edba217ea75a344ba67f787a4be3f53949b2c94c5ab00b15846f
5
5
  SHA512:
6
- metadata.gz: 1f4262320cb3d9ef5304cbdb53af7cb0e0895bac03e7d98697cf38fc73dabc25b579c6fd4a213ae5c0d97d1763f88dabde2f7f1e6455a084c424ef6b042a3acb
7
- data.tar.gz: 35e2b8378b602ad6b853ba7f543d807aab514d0f2a7d8b931230912084d40c7222e45d09cfe4b3eddd614f62bcce578cac2b6e14dac08f5578089ecbb7d7895c
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
- @load_env << decl
37
- @known_env << decl
38
- rescue RBS::DuplicatedDeclarationError => err
39
- Orthoses.logger.warn(err.inspect)
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
- decls_to_lines(m_entry.decls.map(&:decl)).each do |line|
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)
@@ -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
- module SignletonMethodAddedHook
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)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Orthoses
4
- VERSION = "1.9.0"
4
+ VERSION = "1.10.0"
5
5
  end
@@ -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) -> RBS::Environment
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.9.0
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-24 00:00:00.000000000 Z
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
@@ -1,5 +0,0 @@
1
- # THIS IS GENERATED CODE from `$ rake sig`
2
-
3
- module Orthoses::LazyTracePoint::SignletonMethodAddedHook
4
- def singleton_method_added: (untyped id) -> untyped
5
- end