alexa_rubykit 0.0.12 → 1.0.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: bee9c6a6f8480a626b66df8fa8bb865492bb56b0
4
- data.tar.gz: b6c5221d6b40a50849642dcdcb8f6cb857c1dce0
3
+ metadata.gz: d49303d60a2134da9da5e4ccf4842baf3b521443
4
+ data.tar.gz: 6cf666217f8c107c6ed51c3a0e1c9bb7d6a4c809
5
5
  SHA512:
6
- metadata.gz: 4cbb8c2bb8bf470f0052f71fc034aec70ac9209465053dc08298c8f24f1a56d8fff312d70576d21518e7917223a29fec187a344f0df8cc9a8c6e3f1cb20e8e20
7
- data.tar.gz: 403378a7588d55422dd2bb3790b0b4100e03eda7147a3f676f04886f14a78edaaa38d2cf4625e6762c7c3192050a337002de29a912624fc9daa8ebb2c81aad42
6
+ metadata.gz: ec42a228c07e5098100d905cc811d230ab2b0bc3d05ef796172a6669035631ef742e05800ea2cc2c385868b35204baded324a373f4363c7780217a949b9ee0f1
7
+ data.tar.gz: cbffa2be42fc27a7045e9c2e75270dfb2204661c83211af6da46d5ef7969975089ecf07911bb7b67c44daf4d8b56182fcc1b06f7831594e08f6d0b8f1e9cf3bd
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- alexa_rubykit (0.0.12.pre.dev)
4
+ alexa_rubykit (1.0.0.pre.dev)
5
5
  bundler (~> 1.7)
6
6
  rake (~> 10.0)
7
7
  sinatra (~> 1.4)
@@ -5,12 +5,19 @@ module AlexaRubykit
5
5
  # - SessionEndedRequest: Session has ended.
6
6
  class Request
7
7
  require 'json'
8
- attr_accessor :version, :session_return, :response, :shouldEndSession, :type
8
+ require 'alexa_rubykit/session'
9
+ attr_accessor :version, :response, :shouldEndSession, :type, :session
10
+
11
+ def add_session(session)
12
+ @session = session
13
+ end
9
14
  end
10
15
 
11
16
  def self.build_request(json_request)
12
17
  raise ArgumentError, 'Invalid Alexa Request.' unless AlexaRubykit.valid_alexa?(json_request)
13
18
  @request = nil
19
+ # TODO: We probably need better session handling.
20
+ session = AlexaRubykit::Session.new(json_request['session'])
14
21
  case json_request['request']['type']
15
22
  when /Launch/
16
23
  @request = LaunchRequest.new(json_request['request']['requestId'])
@@ -21,9 +28,11 @@ module AlexaRubykit
21
28
  else
22
29
  raise ArgumentError, 'Invalid Request Type.'
23
30
  end
31
+ @request.add_session(session)
24
32
  @request
25
33
  end
26
34
 
35
+
27
36
  # Let's monkey patch Hash.
28
37
  refine Hash do
29
38
  # Take keys of hash and transform those to a symbols
@@ -0,0 +1,28 @@
1
+ module AlexaRubykit
2
+ # Handles the session object in request.
3
+ class Session
4
+ attr_accessor :new, :session_id, :attributes, :user
5
+ def initialize (session)
6
+ raise ArgumentError, 'Invalid Session' if session.nil? || session['new'].nil? || session['sessionId'].nil?
7
+ @new = session['new']
8
+ @session_id = session['sessionId']
9
+ session['attributes'].nil? ? @attributes = Hash.new : @attributes = session['attributes']
10
+ @user = session['user']
11
+ end
12
+
13
+ # Returns whether this is a new session or not.
14
+ def new?
15
+ @new
16
+ end
17
+
18
+ # Returns true if a user is defined.
19
+ def user_defined?
20
+ !@user.nil? || !@user['userId'].nil?
21
+ end
22
+
23
+ # Check to see if attributes are present.
24
+ def has_attributes?
25
+ !@attributes.empty?
26
+ end
27
+ end
28
+ end
@@ -1,6 +1,6 @@
1
1
  # Session end request class.
2
2
  module AlexaRubykit
3
- class SessionEndedRequest
3
+ class SessionEndedRequest < Request
4
4
  attr_accessor :request_id, :reason, :type
5
5
 
6
6
  # TODO: Validate the reason.
@@ -1,3 +1,3 @@
1
1
  module AlexaRubykit
2
- VERSION = '0.0.12'
2
+ VERSION = '1.0.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alexa_rubykit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damian Finol
@@ -97,6 +97,7 @@ files:
97
97
  - lib/alexa_rubykit/launch_request.rb
98
98
  - lib/alexa_rubykit/request.rb
99
99
  - lib/alexa_rubykit/response.rb
100
+ - lib/alexa_rubykit/session.rb
100
101
  - lib/alexa_rubykit/session_ended_request.rb
101
102
  - lib/alexa_rubykit/version.rb
102
103
  homepage: https://github.com/damianFC/alexa-rubykit