class Ralyxa::RegisterIntents

Constants

DEFAULT_INTENTS_DIRECTORY
NO_INTENT_DECLARATIONS_FOUND

Attributes

alexa_skill_class[R]
intents_directory[R]

Public Class Methods

new(intents_directory, alexa_skill_class) click to toggle source
# File lib/ralyxa/register_intents.rb, line 7
def initialize(intents_directory, alexa_skill_class)
  @intents_directory = intents_directory
  @alexa_skill_class = alexa_skill_class
end
run(intents_directory = DEFAULT_INTENTS_DIRECTORY, alexa_skill_class = Ralyxa::Skill) click to toggle source
# File lib/ralyxa/register_intents.rb, line 12
def self.run(intents_directory = DEFAULT_INTENTS_DIRECTORY, alexa_skill_class = Ralyxa::Skill)
  new(intents_directory, alexa_skill_class).run
end

Public Instance Methods

run() click to toggle source
# File lib/ralyxa/register_intents.rb, line 16
def run
  warn NO_INTENT_DECLARATIONS_FOUND if intent_declarations.empty?

  intent_declarations.each do |intent_declaration|
    alexa_skill_class.class_eval intent_declaration
  end
end

Private Instance Methods

intent_declarations() click to toggle source
# File lib/ralyxa/register_intents.rb, line 28
def intent_declarations
  @intent_declarations ||=
    Dir.glob("#{intents_directory}/*.rb")
       .map { |relative_path| File.expand_path(relative_path) }
       .map { |intent_declaration_path| File.open(intent_declaration_path).read }
end