11module ObjectForge
2- class Error < StandardError
3- end
4- class DSLError < Error
5- end
2+ type sequenceable = ObjectForge::_RespondTo & ObjectForge::_Sequenceable
63
7- interface _Sequenceable
8- def succ : -> self
4+ interface _RespondTo
95 def respond_to? : (Symbol name, ?bool include_private) -> bool
106 def class : -> Class
117 end
8+ interface _Sequenceable
9+ def succ : -> self
10+ end
1211 interface _Forgable
1312 def new : (Hash[Symbol, untyped ]) -> self
1413 end
@@ -17,11 +16,16 @@ module ObjectForge
1716 def traits : () -> Hash[Symbol, Hash[Symbol, untyped ]]
1817 end
1918
19+ class Error < StandardError
20+ end
21+ class DSLError < Error
22+ end
23+
2024 VERSION: String
2125 DEFAULT_YARD: ObjectForge::Forgeyard
2226
2327 def self.sequence
24- : (?(ObjectForge::_Sequenceable | ObjectForge::Sequence) initial) -> ObjectForge::Sequence
28+ : (?(ObjectForge::sequenceable | ObjectForge::Sequence) initial) -> ObjectForge::Sequence
2529
2630 def self.define
2731 : (Symbol name, ObjectForge::_Forgable forged) { (ObjectForge::ForgeDSL) -> void } -> ObjectForge::Forge
3337
3438class ObjectForge::Sequence
3539 def self.new
36- : (?(ObjectForge::_Sequenceable | ObjectForge::Sequence) initial) -> ObjectForge::Sequence
40+ : (?(ObjectForge::sequenceable | ObjectForge::Sequence) initial) -> ObjectForge::Sequence
3741
38- attr_reader initial: ObjectForge::_Sequenceable
42+ attr_reader initial: ObjectForge::sequenceable
3943
40- def initialize : (ObjectForge::_Sequenceable initial) -> void
44+ def initialize : (ObjectForge::sequenceable initial) -> void
4145
42- def next : -> ObjectForge::_Sequenceable
46+ def next : -> ObjectForge::sequenceable
4347
44- def reset : -> ObjectForge::_Sequenceable
48+ def reset : -> ObjectForge::sequenceable
4549 alias rewind reset
4650end
4751
@@ -68,7 +72,7 @@ class ObjectForge::Forge
6872 class Parameters
6973 include ObjectForge::_ForgeParameters
7074
71- def intitialize
75+ def initialize
7276 : (attributes: Hash[Symbol, untyped ], traits: Hash[Symbol, Hash[Symbol, untyped ]]) -> void
7377 end
7478
@@ -84,19 +88,21 @@ class ObjectForge::Forge
8488
8589 def forge
8690 : (*Symbol traits, **untyped overrides) ?{ (untyped ) -> void } -> ObjectForge::_Forgable
87- | (Array[Symbol] traits, Hash[Symbol, untyped ] overrides) ?{ (untyped ) -> void } -> ObjectForge::_Forgable
8891 alias build forge
8992 alias [] forge
9093
9194 private
9295
93- def check_traits_and_overrides
94- : (Array[Symbol] traits, Hash[Symbol, untyped ] overrides) -> [Array[Symbol], Hash[Symbol, untyped ]]
95- | (Array[(Array[Symbol] | Hash[Symbol, untyped ])], Hash[Symbol, untyped ]) -> [Array[Symbol], Hash[Symbol, untyped ]]
96+ def resolve_attributes
97+ : (Array[Symbol] traits, Hash[Symbol, untyped ] overrides) -> Hash[Symbol, untyped ]
98+
99+ def build_instance
100+ : (Hash[Symbol, untyped ] attributes) -> ObjectForge::_Forgable
96101end
97102
98103class ObjectForge::ForgeDSL < ObjectForge::UnBasicObject
99104 include ObjectForge::_ForgeParameters
105+
100106 attr_reader sequences: Hash[Symbol, ObjectForge::Sequence]
101107
102108 @attributes: Hash[Symbol, Proc]
@@ -110,12 +116,11 @@ class ObjectForge::ForgeDSL < ObjectForge::UnBasicObject
110116 def freeze : -> self
111117
112118 def attribute
113- : (Symbol name) { -> untyped } -> Symbol
114- | (Symbol name) { (ObjectForge::_Sequenceable) -> untyped } -> Symbol
119+ : (Symbol name) { [self : ObjectForge::Crucible] -> untyped } -> Symbol
115120 alias [] attribute
116121
117122 def sequence
118- : (Symbol name, ?(ObjectForge::_Sequenceable | ObjectForge::Sequence) initial) { (ObjectForge::_Sequenceable) -> untyped } -> Symbol
123+ : (Symbol name, ?(ObjectForge::sequenceable | ObjectForge::Sequence) initial) { (ObjectForge::sequenceable) [ self : ObjectForge::Crucible] -> untyped } -> Symbol
119124
120125 def trait
121126 : (Symbol name) { (self ) -> void } -> Symbol
@@ -125,7 +130,7 @@ class ObjectForge::ForgeDSL < ObjectForge::UnBasicObject
125130 private
126131
127132 def method_missing
128- : (Symbol name) { -> untyped } -> Symbol
133+ : (Symbol name) { [ self : ObjectForge::Crucible] -> untyped } -> Symbol
129134 # After freezing:
130135 | (Symbol name) { -> untyped } -> void
131136
@@ -182,5 +187,5 @@ class ObjectForge::UnBasicObject < BasicObject
182187
183188 def block_given? : -> bool
184189
185- def raise : (_Exception exception, ?String message) -> void
190+ def raise : (_Exception exception, ?String message, ?Array[String] backtrace, ?cause: _Exception ) -> void
186191end
0 commit comments