class ActionAlexa::Intent::Registry

The registry will auto-discover and auto-load and intent files found within the intents folder (configurable). Default path to search is Rails.root/app/intents/*_intents.rb The classes loaded should inherit from ActionAlexa::Intent::Base

Public Class Methods

find_intent(intent) click to toggle source
# File lib/action_alexa/intent/registry.rb, line 16
def self.find_intent(intent)
  load_registry! if intents.empty?

  intent_name = "#{intent}Intent"
  intents[intent_name]
end
intents() click to toggle source
# File lib/action_alexa/intent/registry.rb, line 8
def self.intents
  @intents ||= {}
end
load_registry!() click to toggle source
# File lib/action_alexa/intent/registry.rb, line 23
def self.load_registry!
  intents_path = File.join(
    ActionAlexa.config.root, 'app', 'intents', '*_intent.rb'
  )
  Dir.glob(intents_path).sort.each do |intent_file|
    require intent_file
    class_name = intent_file.split('/').last.gsub(/\.rb/, '')
    register_intent(class_name.split('_').collect(&:capitalize).join)
  end
end
register_intent(intent) click to toggle source
# File lib/action_alexa/intent/registry.rb, line 12
def self.register_intent(intent)
  intents[intent] = intent.constantize
end