Class: VXML
- Inherits:
-
Object
show all
- Defined in:
- lib/vxml-tools/vxml.rb
Overview
VXML
Example
vxml =
VXML.new do |v|
v.prompt "Welcome to All"
v.if_cond "1==1" do |v|
v.prompt "Both are equal"
end
end
vxml.to_s
( or )
vxml = VXML.new
vxml.prompt "Welcome to All"
ifbk = vxml.if_cond "1=="
ifbk.prompt "Both are equal"
vxml.to_s
Instance Method Summary
collapse
Constructor Details
#initialize(tag = 'vxml', options = { :version => "2.0", :xmlns =>"http://www.w3.org/2001/vxml" }, &block) ⇒ VXML
Returns a new instance of VXML.
21
22
23
24
25
26
27
28
|
# File 'lib/vxml-tools/vxml.rb', line 21
def initialize( tag = 'vxml', options = { :version => "2.0", :xmlns =>"http://www.w3.org/2001/vxml" }, &block )
@tag = tag
@options = options
@contents = []
if( block )
block.call(self)
end
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(key, *values, &block) ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/vxml-tools/vxml.rb', line 71
def method_missing( key, *values, &block )
keys = key.to_s.split(/_/)
tag = keys.shift
options = {}
keys.each{|key|
options[key] = values.shift
}
v = VXML.new( tag, options )
values.each{|val|
if( val.is_a? Hash )
v.options.merge! val
else
v.string val
end
}
if( block )
block.call( v )
end
push( v )
end
|
Instance Method Details
#options ⇒ Object
30
31
32
|
# File 'lib/vxml-tools/vxml.rb', line 30
def options
@options
end
|
#process_content ⇒ Object
56
57
58
59
60
|
# File 'lib/vxml-tools/vxml.rb', line 56
def process_content
@contents.collect{|cont|
cont.to_s
}.join("")
end
|
#process_options ⇒ Object
46
47
48
49
50
51
52
53
54
|
# File 'lib/vxml-tools/vxml.rb', line 46
def process_options
if( @options.size > 0 )
" " + @options.collect{|key,val|
"#{key}=\"#{val}\""
}.join(" ")
else
""
end
end
|
#push(obj) ⇒ Object
66
67
68
69
|
# File 'lib/vxml-tools/vxml.rb', line 66
def push( obj )
@contents.push( obj )
obj
end
|
#string(str) ⇒ Object
62
63
64
|
# File 'lib/vxml-tools/vxml.rb', line 62
def string( str )
push( str )
end
|
#to_s ⇒ Object
34
35
36
|
# File 'lib/vxml-tools/vxml.rb', line 34
def to_s
"<#{@tag}#{process_options}>#{process_content}</#{@tag}>"
end
|
#to_vxml ⇒ Object
38
39
40
|
# File 'lib/vxml-tools/vxml.rb', line 38
def to_vxml
'<?xml version="1.0"?>' + self.to_s
end
|
#to_xml ⇒ Object
42
43
44
|
# File 'lib/vxml-tools/vxml.rb', line 42
def to_xml
self.to_vxml
end
|