ralyxa 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.ruby-version +1 -1
- data/lib/ralyxa/response_builder.rb +20 -3
- data/lib/ralyxa/response_entities/reprompt.rb +20 -0
- data/lib/ralyxa/response_entities/response.rb +6 -3
- data/lib/ralyxa/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4da33b74c6ebde802beeae1a7ed472f336cdec0500e918faac4d9b1e86faa8ac
|
4
|
+
data.tar.gz: fa62e5c812eaeb8988c59b806ea5fe587b5c24f43c9fb26be46fb18c4d9410ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac804873ee91d760efde8248d0e5c301770a1ce78177ec3649d009089e61e000394064e453ad29df7fc115d0dc0bcbcf11d5192904a6d5d2d2b0078a536c54ec
|
7
|
+
data.tar.gz: d81d0756ee6b462ba906de4b67e4d03d01caf22a1fb2e9834b451f77f7841fe97259bb658e24bf3bd38ea11af79d5a21d4de3e95b5d43f99ae07945183369039
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.5.1
|
@@ -3,18 +3,20 @@ require_relative './response_entities/response'
|
|
3
3
|
|
4
4
|
module Ralyxa
|
5
5
|
class ResponseBuilder
|
6
|
-
def initialize(response_class, output_speech_class, options)
|
6
|
+
def initialize(response_class, output_speech_class, reprompt_class, options)
|
7
7
|
@response_class = response_class
|
8
8
|
@output_speech_class = output_speech_class
|
9
|
+
@reprompt_class = reprompt_class
|
9
10
|
@options = options
|
10
11
|
end
|
11
12
|
|
12
|
-
def self.build(options = {}, response_class = Ralyxa::ResponseEntities::Response, output_speech_class = Ralyxa::ResponseEntities::OutputSpeech)
|
13
|
-
new(response_class, output_speech_class, options).build
|
13
|
+
def self.build(options = {}, response_class = Ralyxa::ResponseEntities::Response, output_speech_class = Ralyxa::ResponseEntities::OutputSpeech, reprompt_class = Ralyxa::ResponseEntities::Reprompt)
|
14
|
+
new(response_class, output_speech_class, reprompt_class, options).build
|
14
15
|
end
|
15
16
|
|
16
17
|
def build
|
17
18
|
merge_output_speech if response_text_exists?
|
19
|
+
merge_reprompt if reprompt_exists?
|
18
20
|
merge_card if card_exists?
|
19
21
|
|
20
22
|
@response_class.as_hash(@options).to_json
|
@@ -26,6 +28,10 @@ module Ralyxa
|
|
26
28
|
@options.merge!(output_speech: output_speech)
|
27
29
|
end
|
28
30
|
|
31
|
+
def merge_reprompt
|
32
|
+
@options.merge!(reprompt: reprompt)
|
33
|
+
end
|
34
|
+
|
29
35
|
def merge_card
|
30
36
|
@options[:card] = @options[:card].to_h
|
31
37
|
end
|
@@ -38,11 +44,22 @@ module Ralyxa
|
|
38
44
|
@options[:response_text]
|
39
45
|
end
|
40
46
|
|
47
|
+
def reprompt_exists?
|
48
|
+
@options[:reprompt]
|
49
|
+
end
|
50
|
+
|
41
51
|
def output_speech
|
42
52
|
output_speech_params = { speech: @options.delete(:response_text) }
|
43
53
|
output_speech_params[:ssml] = @options.delete(:ssml) if @options[:ssml]
|
44
54
|
|
45
55
|
@output_speech_class.as_hash(output_speech_params)
|
46
56
|
end
|
57
|
+
|
58
|
+
def reprompt
|
59
|
+
reprompt_params = { reprompt_speech: @options.delete(:reprompt) }
|
60
|
+
reprompt_params[:reprompt_ssml] = @options.delete(:reprompt_ssml) if @options[:reprompt_ssml]
|
61
|
+
|
62
|
+
@reprompt_class.as_hash(reprompt_params)
|
63
|
+
end
|
47
64
|
end
|
48
65
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Ralyxa
|
2
|
+
module ResponseEntities
|
3
|
+
class Reprompt
|
4
|
+
def initialize(reprompt_speech, reprompt_ssml)
|
5
|
+
@reprompt_speech = reprompt_speech
|
6
|
+
@reprompt_ssml = reprompt_ssml
|
7
|
+
end
|
8
|
+
|
9
|
+
def to_h
|
10
|
+
{}.tap do |reprompt|
|
11
|
+
reprompt[:outputSpeech] = Ralyxa::ResponseEntities::OutputSpeech.as_hash(speech: @reprompt_speech, ssml: @reprompt_ssml)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.as_hash(reprompt_speech: nil, reprompt_ssml: false)
|
16
|
+
new(reprompt_speech, reprompt_ssml).to_h
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,11 +1,13 @@
|
|
1
1
|
require_relative './output_speech'
|
2
|
+
require_relative './reprompt'
|
2
3
|
require_relative './directives'
|
3
4
|
|
4
5
|
module Ralyxa
|
5
6
|
module ResponseEntities
|
6
7
|
class Response
|
7
|
-
def initialize(output_speech, session_attributes, end_session, start_over, card, directives)
|
8
|
+
def initialize(output_speech, reprompt, session_attributes, end_session, start_over, card, directives)
|
8
9
|
@output_speech = output_speech
|
10
|
+
@reprompt = reprompt
|
9
11
|
@session_attributes = session_attributes
|
10
12
|
@end_session = end_session
|
11
13
|
@start_over = start_over
|
@@ -21,8 +23,8 @@ module Ralyxa
|
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
24
|
-
def self.as_hash(output_speech: false, session_attributes: {}, end_session: false, start_over: false, card: false, directives: false)
|
25
|
-
new(output_speech, session_attributes, end_session, start_over, card, directives).to_h
|
26
|
+
def self.as_hash(output_speech: false, reprompt: false, session_attributes: {}, end_session: false, start_over: false, card: false, directives: false)
|
27
|
+
new(output_speech, reprompt, session_attributes, end_session, start_over, card, directives).to_h
|
26
28
|
end
|
27
29
|
|
28
30
|
private
|
@@ -41,6 +43,7 @@ module Ralyxa
|
|
41
43
|
def add_response(response)
|
42
44
|
response[:response] = {}.tap do |response_object|
|
43
45
|
response_object[:outputSpeech] = @output_speech if @output_speech
|
46
|
+
response_object[:reprompt] = @reprompt if @reprompt
|
44
47
|
response_object[:card] = @card if @card
|
45
48
|
response_object[:directives] = @directives if @directives
|
46
49
|
response_object[:shouldEndSession] = @end_session
|
data/lib/ralyxa/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ralyxa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: alexa_verifier
|
@@ -161,6 +161,7 @@ files:
|
|
161
161
|
- lib/ralyxa/response_entities/directives/audio_player/play.rb
|
162
162
|
- lib/ralyxa/response_entities/directives/audio_player/stop.rb
|
163
163
|
- lib/ralyxa/response_entities/output_speech.rb
|
164
|
+
- lib/ralyxa/response_entities/reprompt.rb
|
164
165
|
- lib/ralyxa/response_entities/response.rb
|
165
166
|
- lib/ralyxa/skill.rb
|
166
167
|
- lib/ralyxa/version.rb
|
@@ -186,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
187
|
version: '0'
|
187
188
|
requirements: []
|
188
189
|
rubyforge_project:
|
189
|
-
rubygems_version: 2.6
|
190
|
+
rubygems_version: 2.7.6
|
190
191
|
signing_key:
|
191
192
|
specification_version: 4
|
192
193
|
summary: A Ruby framework for interacting with Amazon Alexa.
|