Class: Voice::Actions::Talk
- Inherits:
-
Object
- Object
- Voice::Actions::Talk
- Defined in:
- lib/vonage/voice/actions/talk.rb
Instance Attribute Summary collapse
-
#bargeIn ⇒ Object
Returns the value of attribute bargeIn.
-
#eventMethod ⇒ Object
Returns the value of attribute eventMethod.
-
#eventOnCompletion ⇒ Object
Returns the value of attribute eventOnCompletion.
-
#eventUrl ⇒ Object
Returns the value of attribute eventUrl.
-
#language ⇒ Object
Returns the value of attribute language.
-
#level ⇒ Object
Returns the value of attribute level.
-
#loop ⇒ Object
Returns the value of attribute loop.
-
#premium ⇒ Object
Returns the value of attribute premium.
-
#style ⇒ Object
Returns the value of attribute style.
-
#text ⇒ Object
Returns the value of attribute text.
Instance Method Summary collapse
- #action ⇒ Object
- #after_initialize! ⇒ Object
- #create_talk!(builder) ⇒ Object
-
#initialize(attributes = {}) ⇒ Talk
constructor
A new instance of Talk.
- #verify_barge_in ⇒ Object
- #verify_event_method ⇒ Object
- #verify_event_on_completion ⇒ Object
- #verify_event_url ⇒ Object
- #verify_level ⇒ Object
- #verify_loop ⇒ Object
- #verify_premium ⇒ Object
- #verify_style ⇒ Object
Constructor Details
#initialize(attributes = {}) ⇒ Talk
Returns a new instance of Talk.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/vonage/voice/actions/talk.rb', line 7 def initialize(attributes= {}) @text = attributes.fetch(:text) @bargeIn = attributes.fetch(:bargeIn, nil) @loop = attributes.fetch(:loop, nil) @level = attributes.fetch(:level, nil) @language = attributes.fetch(:language, nil) @style = attributes.fetch(:style, nil) @premium = attributes.fetch(:premium, nil) @eventOnCompletion = attributes.fetch(:eventOnCompletion, nil) @eventUrl = attributes.fetch(:eventUrl, nil) @eventMethod = attributes.fetch(:eventMethod, nil) after_initialize! end |
Instance Attribute Details
#bargeIn ⇒ Object
Returns the value of attribute bargeIn.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def @bargeIn end |
#eventMethod ⇒ Object
Returns the value of attribute eventMethod.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def eventMethod @eventMethod end |
#eventOnCompletion ⇒ Object
Returns the value of attribute eventOnCompletion.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def eventOnCompletion @eventOnCompletion end |
#eventUrl ⇒ Object
Returns the value of attribute eventUrl.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def eventUrl @eventUrl end |
#language ⇒ Object
Returns the value of attribute language.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def language @language end |
#level ⇒ Object
Returns the value of attribute level.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def level @level end |
#loop ⇒ Object
Returns the value of attribute loop.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def loop @loop end |
#premium ⇒ Object
Returns the value of attribute premium.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def premium @premium end |
#style ⇒ Object
Returns the value of attribute style.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def style @style end |
#text ⇒ Object
Returns the value of attribute text.
5 6 7 |
# File 'lib/vonage/voice/actions/talk.rb', line 5 def text @text end |
Instance Method Details
#action ⇒ Object
98 99 100 |
# File 'lib/vonage/voice/actions/talk.rb', line 98 def action create_talk!(self) end |
#after_initialize! ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/vonage/voice/actions/talk.rb', line 22 def after_initialize! if self. || self. == false end if self.loop verify_loop end if self.level verify_level end if self.style verify_style end if self.premium || self.premium == false verify_premium end if self.eventOnCompletion || self.eventOnCompletion == false verify_event_on_completion end if self.eventUrl verify_event_url end if self.eventMethod verify_event_method end end |
#create_talk!(builder) ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/vonage/voice/actions/talk.rb', line 102 def create_talk!(builder) ncco = [ { action: 'talk', text: builder.text } ] ncco[0].merge!(bargeIn: builder.) if (builder. || builder. == false) ncco[0].merge!(loop: builder.loop) if builder.loop ncco[0].merge!(level: builder.level) if builder.level ncco[0].merge!(language: builder.language) if builder.language ncco[0].merge!(style: builder.style) if builder.style ncco[0].merge!(premium: builder.premium) if (builder. || builder. == false) ncco[0].merge!(eventOnCompletion: builder.eventOnCompletion) if (builder.eventOnCompletion || builder.eventOnCompletion == false) ncco[0].merge!(eventUrl: builder.eventUrl) if builder.eventUrl ncco[0].merge!(eventMethod: builder.eventMethod) if builder.eventMethod ncco end |
#verify_barge_in ⇒ Object
56 57 58 |
# File 'lib/vonage/voice/actions/talk.rb', line 56 def raise ClientError.new("Expected 'bargeIn' value to be a Boolean") unless self. == true || self. == false end |
#verify_event_method ⇒ Object
92 93 94 95 96 |
# File 'lib/vonage/voice/actions/talk.rb', line 92 def verify_event_method valid_methods = ['GET', 'POST'] raise ClientError.new("Invalid 'eventMethod' value. must be either: 'GET' or 'POST'") unless valid_methods.include?(self.eventMethod.upcase) end |
#verify_event_on_completion ⇒ Object
76 77 78 |
# File 'lib/vonage/voice/actions/talk.rb', line 76 def verify_event_on_completion raise ClientError.new("Expected 'eventOnCompletion' value to be a Boolean") unless self.eventOnCompletion == true || self.eventOnCompletion == false end |
#verify_event_url ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/vonage/voice/actions/talk.rb', line 80 def verify_event_url unless self.eventUrl.is_a?(Array) && self.eventUrl.length == 1 && self.eventUrl[0].is_a?(String) raise ClientError.new("Expected 'eventUrl' parameter to be an Array containing a single string item") end uri = URI.parse(self.eventUrl[0]) raise ClientError.new("Invalid 'eventUrl' value, array must contain a valid URL") unless uri.kind_of?(URI::HTTP) || uri.kind_of?(URI::HTTPS) self.eventUrl end |
#verify_level ⇒ Object
64 65 66 |
# File 'lib/vonage/voice/actions/talk.rb', line 64 def verify_level raise ClientError.new("Expected 'level' value to be a number between -1 and 1") unless self.level.between?(-1, 1) end |
#verify_loop ⇒ Object
60 61 62 |
# File 'lib/vonage/voice/actions/talk.rb', line 60 def verify_loop raise ClientError.new("Expected 'loop' value to be either 0 or a positive integer") unless self.loop >= 0 end |
#verify_premium ⇒ Object
72 73 74 |
# File 'lib/vonage/voice/actions/talk.rb', line 72 def verify_premium raise ClientError.new("Expected 'premium' value to be a Boolean") unless self.premium == true || self.premium == false end |
#verify_style ⇒ Object
68 69 70 |
# File 'lib/vonage/voice/actions/talk.rb', line 68 def verify_style raise ClientError.new("Expected 'style' value to be an Integer") unless self.style.is_a?(Integer) end |