Class: Kumi::IR::Testing::SnastFactory::ModuleBuilder
- Inherits:
-
Object
- Object
- Kumi::IR::Testing::SnastFactory::ModuleBuilder
- Defined in:
- lib/kumi/ir/testing/snast_factory.rb
Instance Method Summary collapse
- #build ⇒ Object
- #declaration(name, **opts, &block) ⇒ Object
-
#initialize ⇒ ModuleBuilder
constructor
A new instance of ModuleBuilder.
Constructor Details
#initialize ⇒ ModuleBuilder
Returns a new instance of ModuleBuilder.
128 129 130 |
# File 'lib/kumi/ir/testing/snast_factory.rb', line 128 def initialize @decls = {} end |
Instance Method Details
#build ⇒ Object
139 140 141 |
# File 'lib/kumi/ir/testing/snast_factory.rb', line 139 def build SnastFactory.snast_module(@decls) end |
#declaration(name, **opts, &block) ⇒ Object
132 133 134 135 136 137 |
# File 'lib/kumi/ir/testing/snast_factory.rb', line 132 def declaration(name, **opts, &block) raise ArgumentError, "declaration requires block" unless block body = block.call @decls[name.to_sym] = SnastFactory.declaration(name, body:, **opts) end |