diff --git a/fixtures/response-sessionAudioStop.json b/fixtures/response-sessionAudioStop.json new file mode 100644 index 0000000..00bb216 --- /dev/null +++ b/fixtures/response-sessionAudioStop.json @@ -0,0 +1,12 @@ +{ + "version" : "1.0", + "response" : + { + "directives": [ + { + "type": "AudioPlayer.Stop" + } + ], + "shouldEndSession": true + } +} diff --git a/lib/alexa_rubykit/response.rb b/lib/alexa_rubykit/response.rb index 58d807d..7526301 100644 --- a/lib/alexa_rubykit/response.rb +++ b/lib/alexa_rubykit/response.rb @@ -24,8 +24,8 @@ def add_speech(speech_text, ssml = false) end @speech end - - def add_audio_url(url, token='', offset=0) + + def add_audio_url(url, token='', offset=0, options={}) @directives << { 'type' => 'AudioPlayer.Play', 'playBehavior' => 'REPLACE_ALL', @@ -36,7 +36,20 @@ def add_audio_url(url, token='', offset=0) 'offsetInMilliseconds' => offset } } - } + }.merge(options) + end + + def add_audio_stop(options={}) + @directives << { + 'type' => 'AudioPlayer.Stop' + }.merge(options) + end + + def add_audio_clear_queue(options={}) + @directives << { + 'type' => 'AudioPlayer.ClearQueue', + 'clearBehavior' => 'CLEAR_ENQUEUED' #CLEAR_ALL + }.merge(options) end def add_reprompt(speech_text, ssml = false) diff --git a/spec/response_spec.rb b/spec/response_spec.rb index 8b3d742..84a9568 100644 --- a/spec/response_spec.rb +++ b/spec/response_spec.rb @@ -123,4 +123,12 @@ expect(response_json).to eq(sample_json) end + it 'should create a valid response with an AudioPlayer.Stop directive' do + response = AlexaRubykit::Response.new + response.add_audio_stop + response.build_response_object + response_json = response.build_response + sample_json = JSON.parse(File.read('fixtures/response-sessionAudioStop.json')).to_json + expect(response_json).to eq(sample_json) + end end \ No newline at end of file