lib/twilio-ruby/twiml/voice_response.rb in twilio-ruby-5.10.7 vs lib/twilio-ruby/twiml/voice_response.rb in twilio-ruby-5.11.0

- old
+ new

@@ -173,12 +173,15 @@ # message:: Message to say # voice:: Voice to use # loop:: Times to loop message # language:: Message langauge # keyword_args:: additional attributes - def say(message, voice: nil, loop: nil, language: nil, **keyword_args) - append(Say.new(message, voice: voice, loop: loop, language: language, **keyword_args)) + def say(message: nil, voice: nil, loop: nil, language: nil, **keyword_args) + say = Say.new(message: message, voice: voice, loop: loop, language: language, **keyword_args) + + yield(say) if block_given? + append(say) end ## # Create a new <Sms> element # message:: Message body @@ -205,19 +208,201 @@ end ## # <Say> TwiML Verb class Say < TwiML - def initialize(message, **keyword_args) + def initialize(message: nil, **keyword_args) super(**keyword_args) @name = 'Say' - @value = message + @value = message unless message.nil? yield(self) if block_given? end + + ## + # Create a new <Break> element + # strength:: Set a pause based on strength + # time:: Set a pause to a specific length of time in seconds or milliseconds, available values: [number]s, [number]ms + # keyword_args:: additional attributes + def break(strength: nil, time: nil, **keyword_args) + append(SsmlBreak.new(strength: strength, time: time, **keyword_args)) + end + + ## + # Create a new <Emphasis> element + # words:: Words to emphasize + # level:: Specify the degree of emphasis + # keyword_args:: additional attributes + def emphasis(words, level: nil, **keyword_args) + append(SsmlEmphasis.new(words, level: level, **keyword_args)) + end + + ## + # Create a new <P> element + # words:: Words to speak + # keyword_args:: additional attributes + def p(words, **keyword_args) + append(SsmlP.new(words, **keyword_args)) + end + + ## + # Create a new <Phoneme> element + # words:: Words to speak + # alphabet:: Specify the phonetic alphabet + # ph:: Specifiy the phonetic symbols for pronunciation + # keyword_args:: additional attributes + def phoneme(words, alphabet: nil, ph: nil, **keyword_args) + append(SsmlPhoneme.new(words, alphabet: alphabet, ph: ph, **keyword_args)) + end + + ## + # Create a new <Prosody> element + # words:: Words to speak + # volume:: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB + # rate:: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n% + # pitch:: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n% + # keyword_args:: additional attributes + def prosody(words, volume: nil, rate: nil, pitch: nil, **keyword_args) + append(SsmlProsody.new(words, volume: volume, rate: rate, pitch: pitch, **keyword_args)) + end + + ## + # Create a new <S> element + # words:: Words to speak + # keyword_args:: additional attributes + def s(words, **keyword_args) + append(SsmlS.new(words, **keyword_args)) + end + + ## + # Create a new <Say-As> element + # words:: Words to be interpreted + # interpret-as:: Specify the type of words are spoken + # role:: Specify the format of the date when interpret-as is set to date + # keyword_args:: additional attributes + def say_as(words, interpretAs: nil, role: nil, **keyword_args) + append(SsmlSayAs.new(words, interpretAs: interpretAs, role: role, **keyword_args)) + end + + ## + # Create a new <Sub> element + # words:: Words to be substituted + # alias:: Substitute a different word (or pronunciation) for selected text such as an acronym or abbreviation + # keyword_args:: additional attributes + def sub(words, aliasAttribute: nil, **keyword_args) + append(SsmlSub.new(words, aliasAttribute: aliasAttribute, **keyword_args)) + end + + ## + # Create a new <W> element + # words:: Words to speak + # role:: Customize the pronunciation of words by specifying the word’s part of speech or alternate meaning + # keyword_args:: additional attributes + def w(words, role: nil, **keyword_args) + append(SsmlW.new(words, role: role, **keyword_args)) + end end ## + # Improving Pronunciation by Specifying Parts of Speech in <Say> + class SsmlW < TwiML + def initialize(words, **keyword_args) + super(**keyword_args) + @name = 'W' + @value = words + yield(self) if block_given? + end + end + + ## + # Pronouncing Acronyms and Abbreviations in <Say> + class SsmlSub < TwiML + def initialize(words, **keyword_args) + super(**keyword_args) + @name = 'Sub' + @value = words + yield(self) if block_given? + end + end + + ## + # Controlling How Special Types of Words Are Spoken in <Say> + class SsmlSayAs < TwiML + def initialize(words, **keyword_args) + super(**keyword_args) + @name = 'Say-As' + @value = words + yield(self) if block_given? + end + end + + ## + # Adding A Pause Between Sentences in <Say> + class SsmlS < TwiML + def initialize(words, **keyword_args) + super(**keyword_args) + @name = 'S' + @value = words + yield(self) if block_given? + end + end + + ## + # Controling Volume, Speaking Rate, and Pitch in <Say> + class SsmlProsody < TwiML + def initialize(words, **keyword_args) + super(**keyword_args) + @name = 'Prosody' + @value = words + yield(self) if block_given? + end + end + + ## + # Using Phonetic Pronunciation in <Say> + class SsmlPhoneme < TwiML + def initialize(words, **keyword_args) + super(**keyword_args) + @name = 'Phoneme' + @value = words + yield(self) if block_given? + end + end + + ## + # Adding a Pause Between Paragraphs in <Say> + class SsmlP < TwiML + def initialize(words, **keyword_args) + super(**keyword_args) + @name = 'P' + @value = words + yield(self) if block_given? + end + end + + ## + # Emphasizing Words in <Say> + class SsmlEmphasis < TwiML + def initialize(words, **keyword_args) + super(**keyword_args) + @name = 'Emphasis' + @value = words + yield(self) if block_given? + end + end + + ## + # Adding a Pause in <Say> + class SsmlBreak < TwiML + def initialize(**keyword_args) + super(**keyword_args) + @name = 'Break' + + yield(self) if block_given? + end + end + + ## # <Reject> TwiML Verb class Reject < TwiML def initialize(**keyword_args) super(**keyword_args) @name = 'Reject' @@ -318,11 +503,14 @@ # message:: Message to say # voice:: Voice to use # loop:: Times to loop message # language:: Message langauge # keyword_args:: additional attributes - def say(message, voice: nil, loop: nil, language: nil, **keyword_args) - append(Say.new(message, voice: voice, loop: loop, language: language, **keyword_args)) + def say(message: nil, voice: nil, loop: nil, language: nil, **keyword_args) + say = Say.new(message: message, voice: voice, loop: loop, language: language, **keyword_args) + + yield(say) if block_given? + append(say) end ## # Create a new <Pause> element # length:: Length in seconds to pause \ No newline at end of file