alexa_rubykit 0.0.12 → 1.0.0

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: 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