Class: Ynl::Family

Inherits:
Object
  • Object
show all
Defined in:
lib/ynl/family.rb

Class Method Summary collapse

Class Method Details

.build(path) ⇒ Object

Builds a Ruby class from a spec file



9
10
11
12
13
14
# File 'lib/ynl/family.rb', line 9

def self.build(path)
  buf = StringIO.new(Generator::PRELUDE.dup)
  classname = File.open(path) {|f| generate(f, buf, namespace: 'self') }

  Module.new { eval(buf.string) }.const_get(classname)
end

.generate(source, out, **kwargs) ⇒ Object

Generates Ruby code from a spec source



17
18
19
# File 'lib/ynl/family.rb', line 17

def self.generate(source, out, **kwargs)
  Generator.new(Ynl::Parser.new(source).parse, out).generate(**kwargs)
end