alexa_objects 1.0.5 → 1.0.6
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 +4 -4
- data/alexa_objects.gemspec +2 -0
- data/lib/alexa_objects/echo_request.rb +2 -3
- data/lib/alexa_objects/response.rb +16 -14
- data/lib/alexa_objects/version.rb +1 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52f730ddeb0df6293146ee102df2e607ffd6eb40
|
4
|
+
data.tar.gz: a772c3a94362b5229d7a61d220ba595af1adafe7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60eb8b142bc67a077ab0257e979ed866a632a9a05f24db438ee25824322c3256b5aa82de9738d925bde6e427b7702440712028328c1dc8a0257dd82b7505a67b
|
7
|
+
data.tar.gz: 10ea57a3292d9c28f96da651d10e51bea8f0d83b4a31faeaa6f07f6dbc0417f7d937b79ac2650acd0651439206b1d162c0b89564051996e5cc1e101f73928e4d
|
data/alexa_objects.gemspec
CHANGED
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
+
spec.add_runtime_dependency 'recursive-open-struct'
|
23
|
+
|
22
24
|
spec.add_development_dependency "bundler", "~> 1.6"
|
23
25
|
spec.add_development_dependency "rake"
|
24
26
|
spec.add_development_dependency "rspec"
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'recursive-open-struct'
|
1
2
|
module AlexaObjects
|
2
3
|
class EchoRequest
|
3
4
|
attr_reader :intent_name, :slots, :timestamp, :request_type, :session_new, :user_id, :access_token, :application_id
|
@@ -44,9 +45,7 @@ module AlexaObjects
|
|
44
45
|
|
45
46
|
private
|
46
47
|
def build_struct(hash)
|
47
|
-
|
48
|
-
nil
|
49
|
-
else
|
48
|
+
unless hash.nil?
|
50
49
|
slot_names = hash.keys.map {|k| k.to_sym.downcase }
|
51
50
|
slot_values = hash.values.map { |v| v["value"] }
|
52
51
|
Struct.new(*slot_names).new(*slot_values)
|
@@ -2,15 +2,15 @@ module AlexaObjects
|
|
2
2
|
class Response
|
3
3
|
attr_accessor :session_attributes, :spoken_response, :card_title, :card_content, :reprompt_text, :end_session, :speech_type, :text_type
|
4
4
|
|
5
|
-
def initialize
|
6
|
-
@session_attributes = {}
|
7
|
-
@speech_type = "PlainText"
|
8
|
-
@spoken_response = nil
|
9
|
-
@card_title = nil
|
10
|
-
@card_content = nil
|
11
|
-
@reprompt_text = nil
|
12
|
-
@text_type = "text"
|
13
|
-
@end_session = true
|
5
|
+
def initialize(params={})
|
6
|
+
@session_attributes = params[:session_attributes] || {}
|
7
|
+
@speech_type = params[:speech_type] || "PlainText"
|
8
|
+
@spoken_response = params[:spoken_response] || nil
|
9
|
+
@card_title = params[:card_title] || nil
|
10
|
+
@card_content = params[:card_content] || nil
|
11
|
+
@reprompt_text = params[:reprompt_text] || nil
|
12
|
+
@text_type = params[:text_type] || "text"
|
13
|
+
@end_session = params[:end_session] || true
|
14
14
|
end
|
15
15
|
|
16
16
|
def add_attribute(key, value)
|
@@ -21,8 +21,8 @@ module AlexaObjects
|
|
21
21
|
@session_attributes[key] << value if @session_attributes[key]
|
22
22
|
end
|
23
23
|
|
24
|
-
def with_card
|
25
|
-
{
|
24
|
+
def to_hash(with_card: false)
|
25
|
+
hash = {
|
26
26
|
"version" => "2.0",
|
27
27
|
"sessionAttributes" => @session_attributes,
|
28
28
|
"response" => {
|
@@ -44,14 +44,16 @@ module AlexaObjects
|
|
44
44
|
"shouldEndSession" => end_session
|
45
45
|
}
|
46
46
|
}
|
47
|
+
|
48
|
+
return with_card ? hash : hash.tap { |hs| hs["response"].delete("card") }
|
47
49
|
end
|
48
50
|
|
49
51
|
def link_card
|
50
|
-
self.with_card.tap { |hs| hs["response"]["card"] = {"type" => "LinkAccount"} }
|
52
|
+
self.hash(with_card: true).tap { |hs| hs["response"]["card"] = {"type" => "LinkAccount"} }
|
51
53
|
end
|
52
54
|
|
53
|
-
def
|
54
|
-
self.with_card
|
55
|
+
def to_json(with_card: false)
|
56
|
+
return self.to_hash(with_card: with_card).to_json
|
55
57
|
end
|
56
58
|
end
|
57
59
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alexa_objects
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyle Lucas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: recursive-open-struct
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -131,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
145
|
version: '0'
|
132
146
|
requirements: []
|
133
147
|
rubyforge_project:
|
134
|
-
rubygems_version: 2.
|
148
|
+
rubygems_version: 2.4.8
|
135
149
|
signing_key:
|
136
150
|
specification_version: 4
|
137
151
|
summary: A pairing of objects for parsing Amazon Echo/Alexa skill requests.
|