class YaspTree

Public Class Methods

new(block) click to toggle source
# File lib/YASP/yasp_tree.rb, line 3
def initialize(block)
        @head = Command.new(nil, [])
        process(block)
end

Public Instance Methods

add(obj) click to toggle source
# File lib/YASP/yasp_tree.rb, line 12
def add(obj)
        @head << obj
end
assign(&block) click to toggle source
# File lib/YASP/yasp_tree.rb, line 24
def assign(&block)
        YaspTree.new(block).tree
end
method_missing(m, *args, &block) click to toggle source
# File lib/YASP/yasp_tree.rb, line 28
def method_missing(m, *args, &block)
        element = Command.new(m, args)
        add(element)

        if block_given?
                previous_head = @head
                @head = element

                self.instance_eval(&block)

                @head = previous_head
        end
end
process(block) click to toggle source
# File lib/YASP/yasp_tree.rb, line 20
def process(block)
        instance_eval(&block)
end
to_scad() click to toggle source
# File lib/YASP/yasp_tree.rb, line 16
def to_scad
        @head.to_scad(0);
end
tree() click to toggle source
# File lib/YASP/yasp_tree.rb, line 8
def tree
        @head
end