ika_bot/lib/ika.rb

27 lines
506 B
Ruby
Raw Permalink Normal View History

2025-08-15 16:25:29 -04:00
require_relative './session'
2025-08-23 14:38:42 -04:00
require_relative './message'
2025-08-23 20:27:45 -04:00
require_relative './ika/plugin'
2025-08-15 16:25:29 -04:00
class Ika
2025-08-23 20:27:45 -04:00
attr_reader :plugins
PLUGIN_TYPES = [
Plugin::HelpPlugin,
2025-08-28 21:02:26 -04:00
Plugin::LessonPlugin,
Plugin::DrillPlugin
2025-08-23 20:27:45 -04:00
]
2025-08-15 16:25:29 -04:00
2025-08-23 14:38:42 -04:00
def self.for(type:, **kwargs)
type.new **kwargs
end
def initialize
2025-08-15 16:25:29 -04:00
@current_session = nil
2025-08-23 20:27:45 -04:00
@plugins = PLUGIN_TYPES.map { |plugin_type| plugin_type.new self }
2025-08-15 17:03:12 -04:00
end
def handle_message(message)
2025-08-23 20:27:45 -04:00
plugins.find { |plugin| plugin.handle_message message }
2025-08-15 16:25:29 -04:00
end
end