Class: Punchblock::Component::Output
- Inherits:
-
ComponentNode
- Object
- RayoNode
- Punchblock::CommandNode
- ComponentNode
- Punchblock::Component::Output
- Defined in:
- lib/punchblock/component/output.rb
Defined Under Namespace
Classes: Complete, Document, Pause, Resume, Seek, SlowDown, SpeedUp, VolumeDown, VolumeUp
Instance Attribute Summary
Attributes inherited from RayoNode
#client, #connection, #original_component
Instance Method Summary collapse
- #inherit(xml_node) ⇒ Object
-
#interrupt_on ⇒ Symbol
Input type on which to interrupt output.
-
#max_time ⇒ Integer
Indicates the maximum amount of time for which the output should be allowed to run before being terminated.
-
#pause! ⇒ Object
Sends an Rayo pause message for the current Output.
-
#pause_action ⇒ Command::Output::Pause
Pauses a running Output.
- #rayo_attributes ⇒ Object
- #rayo_children(root) ⇒ Object
- #render_document=(other) ⇒ Object
-
#render_documents ⇒ Document
The document to render.
-
#renderer ⇒ String
The rendering engine requested by the component.
-
#repeat_interval ⇒ Integer
Indicates the duration of silence that should space repeats of the rendered document.
-
#repeat_times ⇒ Integer
Indicates the number of times the output should be played.
-
#resume! ⇒ Object
Sends an Rayo resume message for the current Output.
-
#resume_action ⇒ Command::Output::Resume
Create an Rayo resume message for the current Output.
-
#seek!(options = {}) ⇒ Object
Sends a Rayo seek message for the current Output.
-
#seek_action(options = {}) ⇒ Command::Output::Seek
Creates an Rayo seek message for the current Output.
-
#slow_down! ⇒ Object
Sends a Rayo slow down message for the current Output.
-
#slow_down_action ⇒ Command::Output::SlowDown
Creates an Rayo slow down message for the current Output.
-
#speed_up! ⇒ Object
Sends a Rayo speed up message for the current Output.
-
#speed_up_action ⇒ Command::Output::SpeedUp
Creates an Rayo speed up message for the current Output.
- #ssml=(other) ⇒ Object
-
#start_offset ⇒ Integer
Indicates some offset through which the output should be skipped before rendering begins.
-
#start_paused ⇒ true, false
Indicates wether or not the component should be started in a paused state to be resumed at a later time.
-
#voice ⇒ String
The TTS voice to use.
-
#volume_down! ⇒ Object
Sends a Rayo volume down message for the current Output.
-
#volume_down_action ⇒ Command::Output::VolumeDown
Creates an Rayo volume down message for the current Output.
-
#volume_up! ⇒ Object
Sends a Rayo volume up message for the current Output.
-
#volume_up_action ⇒ Command::Output::VolumeUp
Creates an Rayo volume up message for the current Output.
Methods inherited from ComponentNode
#add_event, #complete_event, #complete_event=, #initialize, #register_event_handler, #register_internal_handlers, #response=, #stop!, #stop_action, #trigger_event_handler, #write_action
Methods inherited from Punchblock::CommandNode
#initialize, #response, #response=
Methods inherited from RayoNode
#==, class_from_registration, from_xml, #inspect, register, #source, #to_rayo, #to_xml
Constructor Details
This class inherits a constructor from Punchblock::Component::ComponentNode
Instance Method Details
#inherit(xml_node) ⇒ Object
67 68 69 70 71 |
# File 'lib/punchblock/component/output.rb', line 67 def inherit(xml_node) document_nodes = xml_node.xpath 'ns:document', ns: self.class.registered_ns self.render_documents = document_nodes.to_a.map { |node| Document.from_xml node } super end |
#interrupt_on ⇒ Symbol
Returns input type on which to interrupt output.
77 |
# File 'lib/punchblock/component/output.rb', line 77 attribute :interrupt_on, Symbol |
#max_time ⇒ Integer
Returns Indicates the maximum amount of time for which the output should be allowed to run before being terminated. Includes repeats.
92 |
# File 'lib/punchblock/component/output.rb', line 92 attribute :max_time, Integer |
#pause! ⇒ Object
Sends an Rayo pause message for the current Output
160 161 162 163 164 165 166 |
# File 'lib/punchblock/component/output.rb', line 160 def pause! raise InvalidActionError, "Cannot pause a Output that is not executing" unless executing? pause_action.tap do |action| result = write_action action paused! if result end end |
#pause_action ⇒ Command::Output::Pause
Pauses a running Output
153 154 155 |
# File 'lib/punchblock/component/output.rb', line 153 def pause_action Pause.new :component_id => component_id, :target_call_id => target_call_id end |
#rayo_attributes ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/punchblock/component/output.rb', line 97 def rayo_attributes { 'voice' => voice, 'interrupt-on' => interrupt_on, 'start-offset' => start_offset, 'start-paused' => start_paused, 'repeat-interval' => repeat_interval, 'repeat-times' => repeat_times, 'max-time' => max_time, 'renderer' => renderer } end |
#rayo_children(root) ⇒ Object
110 111 112 113 114 115 |
# File 'lib/punchblock/component/output.rb', line 110 def rayo_children(root) render_documents.each do |render_document| render_document.to_rayo root.parent end super end |
#render_document=(other) ⇒ Object
126 127 128 |
# File 'lib/punchblock/component/output.rb', line 126 def render_document=(other) self.render_documents = [other].compact end |
#render_documents ⇒ Document
Returns the document to render.
118 |
# File 'lib/punchblock/component/output.rb', line 118 attribute :render_documents, Array[Document], default: [] |
#renderer ⇒ String
Returns the rendering engine requested by the component.
95 |
# File 'lib/punchblock/component/output.rb', line 95 attribute :renderer, String |
#repeat_interval ⇒ Integer
Returns Indicates the duration of silence that should space repeats of the rendered document.
86 |
# File 'lib/punchblock/component/output.rb', line 86 attribute :repeat_interval, Integer |
#repeat_times ⇒ Integer
Returns Indicates the number of times the output should be played.
89 |
# File 'lib/punchblock/component/output.rb', line 89 attribute :repeat_times, Integer |
#resume! ⇒ Object
Sends an Rayo resume message for the current Output
185 186 187 188 189 190 191 |
# File 'lib/punchblock/component/output.rb', line 185 def resume! raise InvalidActionError, "Cannot resume a Output that is not paused." unless paused? resume_action.tap do |action| result = write_action action resumed! if result end end |
#resume_action ⇒ Command::Output::Resume
Create an Rayo resume message for the current Output
178 179 180 |
# File 'lib/punchblock/component/output.rb', line 178 def resume_action Resume.new :component_id => component_id, :target_call_id => target_call_id end |
#seek!(options = {}) ⇒ Object
Sends a Rayo seek message for the current Output
220 221 222 223 224 225 |
# File 'lib/punchblock/component/output.rb', line 220 def seek!( = {}) raise InvalidActionError, "Cannot seek an Output that is already seeking." if seeking? seek_action().tap do |action| write_action action end end |
#seek_action(options = {}) ⇒ Command::Output::Seek
Creates an Rayo seek message for the current Output
211 212 213 214 215 |
# File 'lib/punchblock/component/output.rb', line 211 def seek_action( = {}) Seek.new({ :component_id => component_id, :target_call_id => target_call_id }.merge()).tap do |s| s.original_component = self end end |
#slow_down! ⇒ Object
Sends a Rayo slow down message for the current Output
303 304 305 306 307 308 |
# File 'lib/punchblock/component/output.rb', line 303 def slow_down! raise InvalidActionError, "Cannot slow down an Output that is already speeding." unless not_speeding? slow_down_action.tap do |action| write_action action end end |
#slow_down_action ⇒ Command::Output::SlowDown
Creates an Rayo slow down message for the current Output
294 295 296 297 298 |
# File 'lib/punchblock/component/output.rb', line 294 def slow_down_action SlowDown.new(:component_id => component_id, :target_call_id => target_call_id).tap do |s| s.original_component = self end end |
#speed_up! ⇒ Object
Sends a Rayo speed up message for the current Output
277 278 279 280 281 282 |
# File 'lib/punchblock/component/output.rb', line 277 def speed_up! raise InvalidActionError, "Cannot speed up an Output that is already speeding." unless not_speeding? speed_up_action.tap do |action| write_action action end end |
#speed_up_action ⇒ Command::Output::SpeedUp
Creates an Rayo speed up message for the current Output
268 269 270 271 272 |
# File 'lib/punchblock/component/output.rb', line 268 def speed_up_action SpeedUp.new(:component_id => component_id, :target_call_id => target_call_id).tap do |s| s.original_component = self end end |
#ssml=(other) ⇒ Object
130 131 132 |
# File 'lib/punchblock/component/output.rb', line 130 def ssml=(other) self.render_documents = [{:value => other}] end |
#start_offset ⇒ Integer
Returns Indicates some offset through which the output should be skipped before rendering begins.
80 |
# File 'lib/punchblock/component/output.rb', line 80 attribute :start_offset, Integer |
#start_paused ⇒ true, false
Returns Indicates wether or not the component should be started in a paused state to be resumed at a later time.
83 |
# File 'lib/punchblock/component/output.rb', line 83 attribute :start_paused, Boolean |
#voice ⇒ String
Returns the TTS voice to use.
74 |
# File 'lib/punchblock/component/output.rb', line 74 attribute :voice, String |
#volume_down! ⇒ Object
Sends a Rayo volume down message for the current Output
397 398 399 400 401 402 |
# File 'lib/punchblock/component/output.rb', line 397 def volume_down! raise InvalidActionError, "Cannot volume down an Output that is already voluming." unless not_voluming? volume_down_action.tap do |action| write_action action end end |
#volume_down_action ⇒ Command::Output::VolumeDown
Creates an Rayo volume down message for the current Output
388 389 390 391 392 |
# File 'lib/punchblock/component/output.rb', line 388 def volume_down_action VolumeDown.new(:component_id => component_id, :target_call_id => target_call_id).tap do |s| s.original_component = self end end |
#volume_up! ⇒ Object
Sends a Rayo volume up message for the current Output
371 372 373 374 375 376 |
# File 'lib/punchblock/component/output.rb', line 371 def volume_up! raise InvalidActionError, "Cannot volume up an Output that is already voluming." unless not_voluming? volume_up_action.tap do |action| write_action action end end |
#volume_up_action ⇒ Command::Output::VolumeUp
Creates an Rayo volume up message for the current Output
362 363 364 365 366 |
# File 'lib/punchblock/component/output.rb', line 362 def volume_up_action VolumeUp.new(:component_id => component_id, :target_call_id => target_call_id).tap do |s| s.original_component = self end end |