Module: Gliffynator::DSL
- Included in:
- Diagram
- Defined in:
- lib/gliffynator/dsl.rb
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# 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
|
Instance Method Details
#actor(*args) ⇒ Object
15
16
17
18
19
20
|
# 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) ⇒ Object
10
11
12
13
|
# 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) ⇒ Object
3
4
5
6
7
8
|
# 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
|