Delete commands arhitecture
This commit is contained in:
parent
8320d2dfcb
commit
0df41a7aae
@ -1,4 +0,0 @@
|
||||
require_relative "commands/command"
|
||||
require_relative "commands/help_command"
|
||||
require_relative "commands/lesson_command"
|
||||
require_relative "commands/stop_lesson_command"
|
@ -1,46 +0,0 @@
|
||||
module Commands
|
||||
@@commands = []
|
||||
|
||||
def self.register_command(command_class)
|
||||
@@commands << command_class
|
||||
end
|
||||
|
||||
def self.registered_commands
|
||||
@@commands
|
||||
end
|
||||
|
||||
class Command
|
||||
def self.inherited(klass)
|
||||
Commands.register_command klass
|
||||
end
|
||||
|
||||
def self.for(ika, message)
|
||||
Commands.registered_commands.find do |command_class|
|
||||
command_class.matches? message.content
|
||||
end&.new(ika, message)
|
||||
end
|
||||
|
||||
def self.matches?(message_text)
|
||||
message_text == "!#{command_string}"
|
||||
end
|
||||
|
||||
def self.help
|
||||
"!#{command_string} - #{description}"
|
||||
end
|
||||
|
||||
def self.description
|
||||
"blah blah blah"
|
||||
end
|
||||
|
||||
attr_reader :ika, :message
|
||||
|
||||
def initialize(ika, message)
|
||||
@ika = ika
|
||||
@message = message
|
||||
end
|
||||
|
||||
def execute
|
||||
puts "This is a generic command! I can't execute anything!"
|
||||
end
|
||||
end
|
||||
end
|
@ -1,16 +0,0 @@
|
||||
module Commands
|
||||
class Help < Command
|
||||
def self.command_string
|
||||
"help"
|
||||
end
|
||||
|
||||
def self.description
|
||||
"Shows you a list of available commands"
|
||||
end
|
||||
|
||||
def execute
|
||||
message.respond ["I'm Ika! Here are the commands I know:",
|
||||
*Commands.registered_commands.map(&:help)].join("\n")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,19 +0,0 @@
|
||||
module Commands
|
||||
class LessonCommand < Command
|
||||
def self.command_string
|
||||
"lesson"
|
||||
end
|
||||
|
||||
def self.description
|
||||
"Starts timers for a lesson"
|
||||
end
|
||||
|
||||
def execute
|
||||
return message.respond("There's already a lesson running!") if ika.current_lesson_running?
|
||||
|
||||
message.respond("Starting a lesson now!")
|
||||
|
||||
ika.start_lesson! message
|
||||
end
|
||||
end
|
||||
end
|
@ -1,18 +0,0 @@
|
||||
module Commands
|
||||
class StopLessonCommand < Command
|
||||
def self.command_string
|
||||
"stoplesson"
|
||||
end
|
||||
|
||||
def self.description
|
||||
"Stops the current lesson, if one is running"
|
||||
end
|
||||
|
||||
def execute
|
||||
return message.respond("There's no lesson running") unless ika.current_lesson_running?
|
||||
|
||||
message.respond("Ending the current lesson!")
|
||||
ika.stop_current_lesson!
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user