ika_bot/lib/ika.rb

27 lines
515 B
Ruby

require_relative './session'
require_relative './message'
require_relative './drill_plugin'
require_relative './ika/plugin'
class Ika
attr_reader :plugins
PLUGIN_TYPES = [
Plugin::HelpPlugin,
Plugin::LessonPlugin
]
def self.for(type:, **kwargs)
type.new **kwargs
end
def initialize
@current_session = nil
@plugins = PLUGIN_TYPES.map { |plugin_type| plugin_type.new self }
end
def handle_message(message)
plugins.find { |plugin| plugin.handle_message message }
end
end