module Gliffynator::DSL
Public Instance Methods
actor(*args)
click to toggle source
# File lib/gliffynator/dsl.rb, line 15 def actor(*args) self.objects << Gliffynator::Actor.create( get_id_and_increment(Gliffynator::Actor), *args ) end
add_arrow(*args)
click to toggle source
# File lib/gliffynator/dsl.rb, line 10 def add_arrow(*args) id = get_id_and_increment(Gliffynator::Arrow) self.objects << Gliffynator::Arrow.create(id, *args) end
get_id_and_increment(klass)
click to toggle source
# File lib/gliffynator/dsl.rb, line 3 def get_id_and_increment(klass) id = self.objects.global_id_counter self.objects.global_id_counter += klass.id_usage || 1 id end
method_missing(m, *args, &block)
click to toggle source
# File lib/gliffynator/dsl.rb, line 22 def method_missing(m, *args, &block) begin class_name = "Gliffynator::" + m.to_s.split("_").collect(&:capitalize).join klass = instance_eval(class_name) self.objects << klass.create( get_id_and_increment(klass), *args ) rescue NameError raise NoMethodError, "Unknown shape #{class_name}" end end