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