Class: QemuToolkit::DSL::File

Inherits:
Object
  • Object
show all
Defined in:
lib/qemu-toolkit/dsl.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeFile

Returns a new instance of File.



36
37
38
# File 'lib/qemu-toolkit/dsl.rb', line 36

def initialize
  @objects = []
end

Instance Attribute Details

#objectsObject (readonly)

Returns the value of attribute objects.



34
35
36
# File 'lib/qemu-toolkit/dsl.rb', line 34

def objects
  @objects
end

Instance Method Details

#add_toplevel_target(target, producer) ⇒ Object



48
49
50
51
52
53
54
55
# File 'lib/qemu-toolkit/dsl.rb', line 48

def add_toplevel_target target, producer
  define_singleton_method(target) { |*args, &block| 
    object = producer.call(*args) 
    Unit.new(object, &block)
    
    @objects << object
  }
end

#load_file(path) ⇒ Object



39
40
41
42
43
44
# File 'lib/qemu-toolkit/dsl.rb', line 39

def load_file(path)
  eval(
    ::File.read(path), 
    binding, 
    path)
end

#require(file) ⇒ Object



45
46
47
# File 'lib/qemu-toolkit/dsl.rb', line 45

def require file
  Kernel.require file
end