module BetterAlexaRubyKit

Session end request class.

Constants

VERSION

Public Class Methods

build_request(json_request) click to toggle source

Builds a new request for Alexa.

# 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
print_json(json) click to toggle source

Prints a JSON object.

print_version() click to toggle source

Prints the Gem version.

transform_keys_to_symbols(value) click to toggle source

Take keys of hash and transform those to a symbols

# 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) click to toggle source

Returns true if all the Alexa request objects are set.

# 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