alexa_rubykit 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d49303d60a2134da9da5e4ccf4842baf3b521443
4
- data.tar.gz: 6cf666217f8c107c6ed51c3a0e1c9bb7d6a4c809
3
+ metadata.gz: 3748981d0a9bc0fc1bf4f5b717d167641dcd697a
4
+ data.tar.gz: 78ada1f9c255e3531fcc578ff6dd5523c8711dc5
5
5
  SHA512:
6
- metadata.gz: ec42a228c07e5098100d905cc811d230ab2b0bc3d05ef796172a6669035631ef742e05800ea2cc2c385868b35204baded324a373f4363c7780217a949b9ee0f1
7
- data.tar.gz: cbffa2be42fc27a7045e9c2e75270dfb2204661c83211af6da46d5ef7969975089ecf07911bb7b67c44daf4d8b56182fcc1b06f7831594e08f6d0b8f1e9cf3bd
6
+ metadata.gz: 2adaf509979b0c18c0db6f64de1416a63878eb87d52bfae7a84bed8db2ae5a78c3dd2b52f6f74351aefb966a15a1100a4d14bc3f2827b0e9ef03219cf2740ad8
7
+ data.tar.gz: 4fb73941be833903ec6dfb2337ec3aab257e3938006d51c278fc399002358094b8165768aba82554dc3be186e830f7ca75889710a1a364251134e3ef56902b93
@@ -1,18 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- alexa_rubykit (1.0.0.pre.dev)
4
+ alexa_rubykit (1.0.0)
5
5
  bundler (~> 1.7)
6
6
  rake (~> 10.0)
7
- sinatra (~> 1.4)
8
7
 
9
8
  GEM
10
9
  remote: https://rubygems.org/
11
10
  specs:
12
11
  diff-lcs (1.2.5)
13
- rack (1.6.1)
14
- rack-protection (1.5.3)
15
- rack
16
12
  rake (10.4.2)
17
13
  rspec (3.2.0)
18
14
  rspec-core (~> 3.2.0)
@@ -27,16 +23,11 @@ GEM
27
23
  diff-lcs (>= 1.2.0, < 2.0)
28
24
  rspec-support (~> 3.2.0)
29
25
  rspec-support (3.2.2)
30
- sinatra (1.4.6)
31
- rack (~> 1.4)
32
- rack-protection (~> 1.4)
33
- tilt (>= 1.3, < 3)
34
- tilt (2.0.1)
35
26
 
36
27
  PLATFORMS
37
28
  ruby
38
29
 
39
30
  DEPENDENCIES
40
31
  alexa_rubykit!
41
- rspec (~> 3.2.0)
42
- rspec-mocks (~> 3.2.0)
32
+ rspec (~> 3.2, >= 3.2.0)
33
+ rspec-mocks (~> 3.2, >= 3.2.0)
@@ -6,10 +6,12 @@ require 'alexa_rubykit/launch_request'
6
6
  require 'alexa_rubykit/session_ended_request'
7
7
 
8
8
  module AlexaRubykit
9
+ # Prints a JSON object.
9
10
  def self.print_json(json)
10
11
  p json
11
12
  end
12
13
 
14
+ # Prints the Gem version.
13
15
  def self.print_version
14
16
  p AlexaRubykit::VERSION
15
17
  end
@@ -35,6 +35,7 @@ module AlexaRubykit
35
35
  slot
36
36
  end
37
37
 
38
+ # Outputs the Intent Name, request Id and slot information.
38
39
  def to_s
39
40
  "IntentRequest: #{@name} requestID: #{request_id} Slots: #{@slots}"
40
41
  end
@@ -51,7 +52,7 @@ module AlexaRubykit
51
52
  @value = value
52
53
  end
53
54
 
54
- # For better testing.
55
+ # Outputs Slot name and value.
55
56
  def to_s
56
57
  "Slot Name: #{@name}, Value: #{value}"
57
58
  end
@@ -9,6 +9,8 @@ module AlexaRubykit
9
9
  @type = 'LAUNCH_REQUEST'
10
10
  @request_id = request_id
11
11
  end
12
+
13
+ # Outputs the launch requestID.
12
14
  def to_s
13
15
  "LaunchRequest requestID: #{@request_id}"
14
16
  end
@@ -8,11 +8,13 @@ module AlexaRubykit
8
8
  require 'alexa_rubykit/session'
9
9
  attr_accessor :version, :response, :shouldEndSession, :type, :session
10
10
 
11
+ # Adds a specific session.
11
12
  def add_session(session)
12
13
  @session = session
13
14
  end
14
15
  end
15
16
 
17
+ # Builds a new request for Alexa.
16
18
  def self.build_request(json_request)
17
19
  raise ArgumentError, 'Invalid Alexa Request.' unless AlexaRubykit.valid_alexa?(json_request)
18
20
  @request = nil
@@ -32,7 +34,6 @@ module AlexaRubykit
32
34
  @request
33
35
  end
34
36
 
35
-
36
37
  # Let's monkey patch Hash.
37
38
  refine Hash do
38
39
  # Take keys of hash and transform those to a symbols
@@ -1,7 +1,7 @@
1
1
  module AlexaRubykit
2
2
  class Response
3
3
  require 'json'
4
- attr_accessor :version, :session, :response_object, :session_attributes, :speech, :response, :card
4
+ attr_accessor :version, :session, :response_object, :session_attributes, :speech, :reprompt, :response, :card
5
5
 
6
6
  # Every response needs a shouldendsession and a version attribute
7
7
  # We initialize version to 1.0, use add_version to set your own.
@@ -19,6 +19,12 @@ module AlexaRubykit
19
19
  @speech = { :type => 'PlainText', :text => speech_text }
20
20
  @speech
21
21
  end
22
+
23
+ def add_reprompt(speech_text)
24
+ @reprompt = { "outputSpeech" => { :type => 'PlainText', :text => speech_text } }
25
+ @reprompt
26
+ end
27
+
22
28
  #
23
29
  #"type": "string",
24
30
  # "title": "string",
@@ -47,6 +53,13 @@ module AlexaRubykit
47
53
  { :outputSpeech => output_speech, :shouldEndSession => end_session }
48
54
  end
49
55
 
56
+ # Incorporates reprompt in the SDK 2015-05
57
+ def say_response_with_reprompt(speech, reprompt_speech, end_session = true)
58
+ output_speech = add_speech(speech)
59
+ reprompt_speech = add_reprompt(reprompt_speech)
60
+ { :outputSpeech => output_speech, :reprompt => reprompt_speech, :shouldEndSession => end_session }
61
+ end
62
+
50
63
 
51
64
  # Creates a session object. We pretty much only use this in testing.
52
65
  def build_session
@@ -63,14 +76,15 @@ module AlexaRubykit
63
76
  @response = Hash.new
64
77
  @response[:outputSpeech] = @speech unless @speech.nil?
65
78
  @response[:card] = @card unless @card.nil?
79
+ @response[:reprompt] = @reprompt unless session_end && @reprompt.nil?
66
80
  @response[:shouldEndSession] = session_end
67
81
  @response
68
82
  end
69
83
 
70
84
  # Builds a response.
71
85
  # Takes the version, response and should_end_session variables and builds a JSON object.
72
- def build_response
73
- response_object = build_response_object
86
+ def build_response(session_end = true)
87
+ response_object = build_response_object(session_end)
74
88
  response = Hash.new
75
89
  response[:version] = @version
76
90
  response[:sessionAttributes] = @session_attributes unless @session_attributes.empty?
@@ -78,7 +92,7 @@ module AlexaRubykit
78
92
  response.to_json
79
93
  end
80
94
 
81
- # TODO: Update this.
95
+ # Outputs the version, session object and the response object.
82
96
  def to_s
83
97
  "Version => #{@version}, SessionObj => #{@session}, Response => #{@response}"
84
98
  end
@@ -20,6 +20,11 @@ module AlexaRubykit
20
20
  !@user.nil? || !@user['userId'].nil?
21
21
  end
22
22
 
23
+ # Returns the user_id.
24
+ def user_id
25
+ @user['userId'] if user_defined?
26
+ end
27
+
23
28
  # Check to see if attributes are present.
24
29
  def has_attributes?
25
30
  !@attributes.empty?
@@ -12,6 +12,8 @@ module AlexaRubykit
12
12
  @request_id = request_id
13
13
  @reason = reason
14
14
  end
15
+
16
+ # Ouputs the request_id and the reason why.
15
17
  def to_s
16
18
  "Session Ended for requestID: #{@request_id} with reason #{@reason}"
17
19
  end
@@ -1,3 +1,3 @@
1
1
  module AlexaRubykit
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alexa_rubykit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damian Finol
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-11 00:00:00.000000000 Z
11
+ date: 2015-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,25 +38,14 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
- - !ruby/object:Gem::Dependency
42
- name: sinatra
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.4'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.4'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rspec
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.2'
48
+ - - ">="
60
49
  - !ruby/object:Gem::Version
61
50
  version: 3.2.0
62
51
  type: :development
@@ -64,6 +53,9 @@ dependencies:
64
53
  version_requirements: !ruby/object:Gem::Requirement
65
54
  requirements:
66
55
  - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '3.2'
58
+ - - ">="
67
59
  - !ruby/object:Gem::Version
68
60
  version: 3.2.0
69
61
  - !ruby/object:Gem::Dependency
@@ -71,6 +63,9 @@ dependencies:
71
63
  requirement: !ruby/object:Gem::Requirement
72
64
  requirements:
73
65
  - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.2'
68
+ - - ">="
74
69
  - !ruby/object:Gem::Version
75
70
  version: 3.2.0
76
71
  type: :development
@@ -78,6 +73,9 @@ dependencies:
78
73
  version_requirements: !ruby/object:Gem::Requirement
79
74
  requirements:
80
75
  - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '3.2'
78
+ - - ">="
81
79
  - !ruby/object:Gem::Version
82
80
  version: 3.2.0
83
81
  description: Alexa Ruby Kit with examples
@@ -120,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
118
  version: '0'
121
119
  requirements: []
122
120
  rubyforge_project:
123
- rubygems_version: 2.4.6
121
+ rubygems_version: 2.4.4
124
122
  signing_key:
125
123
  specification_version: 4
126
124
  summary: Alexa Ruby Kit