Class: Alexa::IntentHandlers::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/alexa/intent_handlers/base.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(alexa_context) ⇒ Base

Returns a new instance of Base.



29
30
31
# File 'lib/alexa/intent_handlers/base.rb', line 29

def initialize(alexa_context)
  @context = alexa_context
end

Instance Attribute Details

#contextObject

Returns the value of attribute context.



27
28
29
# File 'lib/alexa/intent_handlers/base.rb', line 27

def context
  @context
end

Class Method Details

._required_slot_namesObject

Lets you set required_slot_names per subclass

class IntentHandlers::NewIntent < IntentHandlers::Base

required_slot_names :Function, :CareerLevel

end

handler = IntentHandlers::NewIntent.new handler.required_slot_names # => [:Function, :CareerLevel]



18
19
20
# File 'lib/alexa/intent_handlers/base.rb', line 18

def _required_slot_names
  @_required_slot_names ||= []
end

.inherited(subclass) ⇒ Object



5
6
7
# File 'lib/alexa/intent_handlers/base.rb', line 5

def inherited(subclass)
  subclass.instance_variable_set("@_required_slot_names", _required_slot_names.clone)
end

.required_slot_names(*names) ⇒ Object



22
23
24
# File 'lib/alexa/intent_handlers/base.rb', line 22

def required_slot_names(*names)
  @_required_slot_names = names.map(&:to_s)
end

Instance Method Details

#handleObject



37
38
39
# File 'lib/alexa/intent_handlers/base.rb', line 37

def handle
  raise "Override .handle"
end

#intent_usage_countObject



57
58
59
# File 'lib/alexa/intent_handlers/base.rb', line 57

def intent_usage_count
  @_usage_count ||= context.user.usage_count_for(intent_name: request.intent_name)
end

#requestObject



33
34
35
# File 'lib/alexa/intent_handlers/base.rb', line 33

def request
  context.request
end

#responseObject



45
46
47
# File 'lib/alexa/intent_handlers/base.rb', line 45

def response
  @_response ||= Alexa::Response.new(intent: self)
end

#say_welcome?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/alexa/intent_handlers/base.rb', line 49

def say_welcome?
  @say_welcome == true
end

#sessionObject



41
42
43
# File 'lib/alexa/intent_handlers/base.rb', line 41

def session
  request.session
end

#slotsObject



53
54
55
# File 'lib/alexa/intent_handlers/base.rb', line 53

def slots
  request.slots
end