Class: Kumi::IR::Testing::SnastFactory::ModuleBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/kumi/ir/testing/snast_factory.rb

Instance Method Summary collapse

Constructor Details

#initializeModuleBuilder

Returns a new instance of ModuleBuilder.



126
127
128
# File 'lib/kumi/ir/testing/snast_factory.rb', line 126

def initialize
  @decls = {}
end

Instance Method Details

#buildObject



137
138
139
# File 'lib/kumi/ir/testing/snast_factory.rb', line 137

def build
  SnastFactory.snast_module(@decls)
end

#declaration(name, **opts, &block) ⇒ Object

Raises:

  • (ArgumentError)


130
131
132
133
134
135
# File 'lib/kumi/ir/testing/snast_factory.rb', line 130

def declaration(name, **opts, &block)
  raise ArgumentError, "declaration requires block" unless block

  body = yield
  @decls[name.to_sym] = SnastFactory.declaration(name, body:, **opts)
end