Module: BetterAlexaRubyKit

Defined in:
lib/better_alexa_rubykit/session_ended_request.rb,
lib/better_alexa_rubykit.rb,
lib/better_alexa_rubykit/request.rb,
lib/better_alexa_rubykit/session.rb,
lib/better_alexa_rubykit/version.rb,
lib/better_alexa_rubykit/response.rb,
lib/better_alexa_rubykit/intent_request.rb,
lib/better_alexa_rubykit/launch_request.rb

Overview

Session end request class.

Defined Under Namespace

Classes: IntentRequest, LaunchRequest, Request, Response, Session, SessionEndedRequest, Slot

Constant Summary collapse

VERSION =
'1.2.1'

Class Method Summary collapse

Class Method Details

.build_request(json_request) ⇒ Object

Builds a new request for Alexa.

Raises:



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/better_alexa_rubykit/request.rb', line 35

def self.build_request(json_request)
  raise ArgumentError, 'Invalid Alexa Request.' unless BetterAlexaRubyKit.valid_alexa?(json_request)
  @request = nil
  case json_request['request']['type']
    when /Launch/
      @request = LaunchRequest.new(json_request)
    when /Intent/
      @request = IntentRequest.new(json_request)
    when /SessionEnded/
      @request = SessionEndedRequest.new(json_request)
    else
      raise ArgumentError, 'Invalid Request Type.'
  end
  @request
end

Prints a JSON object.



10
11
12
# File 'lib/better_alexa_rubykit.rb', line 10

def self.print_json(json)
  p json
end

Prints the Gem version.



15
16
17
# File 'lib/better_alexa_rubykit.rb', line 15

def self.print_version
  p BetterAlexaRubyKit::VERSION
end

.transform_keys_to_symbols(value) ⇒ Object

Take keys of hash and transform those to a symbols



52
53
54
55
56
# File 'lib/better_alexa_rubykit/request.rb', line 52

def self.transform_keys_to_symbols(value)
  return value if not value.is_a?(Hash)
  hash = value.inject({}){|memo,(k,v)| memo[k.to_sym] = self.transform_keys_to_symbols(v); memo}
  return hash
end

.valid_alexa?(request_json) ⇒ Boolean

Returns true if all the Alexa request objects are set.

Returns:



20
21
22
23
# File 'lib/better_alexa_rubykit.rb', line 20

def self.valid_alexa?(request_json)
  !request_json.nil? && !request_json['session'].nil? &&
      !request_json['version'].nil? && !request_json['request'].nil?
end