module Barrymore::ClassMethods

Class-level DSL

Public Instance Methods

command_defined?(arg) click to toggle source

arg [Message|String]

# File lib/barrymore/class_methods.rb, line 18
def command_defined?(arg)
  name = arg.is_a?(String) ? arg : arg.text
  barrymore_commands.key?(name)
end
define_command(name, &block) click to toggle source
# File lib/barrymore/class_methods.rb, line 6
def define_command(name, &block)
  raise(ArgumentError, 'no block given') unless block
  barrymore_commands[name] = BotCommand.new(name, &block)
end
define_command_continuation(name, &block) click to toggle source
# File lib/barrymore/class_methods.rb, line 11
def define_command_continuation(name, &block)
  raise(ArgumentError, 'no block given') unless block
  raise(UndefinedCommandError, name) unless command_defined?(name)
  get_barrymore_command(name).continuation = block
end

Private Instance Methods

barrymore_commands() click to toggle source
# File lib/barrymore/class_methods.rb, line 36
def barrymore_commands
  @barrymore_commands ||= {}
end
get_barrymore_command(arg) click to toggle source

arg [Message|String]

# File lib/barrymore/class_methods.rb, line 31
def get_barrymore_command(arg)
  name = arg.is_a?(String) ? arg : arg.text
  barrymore_commands[name]
end