alexa_objects 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27c6becd500bc169ede65b66b7c7bbe58b3d030f
4
- data.tar.gz: f4c66ee2745fefe112c65924cbb1c58f1740cc83
3
+ metadata.gz: 52f730ddeb0df6293146ee102df2e607ffd6eb40
4
+ data.tar.gz: a772c3a94362b5229d7a61d220ba595af1adafe7
5
5
  SHA512:
6
- metadata.gz: f124f81f470089002bf9ea67a1a2ea9ff82133d189b3db6e95c0d98091413ef8903d97f0d339be19a88908adc1d5d61b66a114e684e7b038925cef31d3dd56c1
7
- data.tar.gz: e804a8998daabbc564ac50559d45a95e2706c1dc471019136e8e70e0a6e177af4bfaf29d34230c9a276d974c976eee44fecdd1ba7394f8e343c3bdc79a4918fc
6
+ metadata.gz: 60eb8b142bc67a077ab0257e979ed866a632a9a05f24db438ee25824322c3256b5aa82de9738d925bde6e427b7702440712028328c1dc8a0257dd82b7505a67b
7
+ data.tar.gz: 10ea57a3292d9c28f96da651d10e51bea8f0d83b4a31faeaa6f07f6dbc0417f7d937b79ac2650acd0651439206b1d162c0b89564051996e5cc1e101f73928e4d
@@ -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
- if hash.nil?
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 without_card
54
- self.with_card.tap { |hs| hs["response"].delete("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
@@ -1,3 +1,3 @@
1
1
  module AlexaObjects
2
- VERSION = "1.0.5"
2
+ VERSION = "1.0.6"
3
3
  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.5
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-12 00:00:00.000000000 Z
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.2.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.