commands.rb 378 B

123456789101112131415161718
  1. require 'optparse'
  2. class Command
  3. attr_reader :name, :options_parser, :operation
  4. def initialize(name, options ={}, &block)
  5. @name = name
  6. @operation = block
  7. end
  8. def call(message_str, event=nil)
  9. match = /pkmn-\w+\s?(.*)/.match(message_str)
  10. args = match[1]
  11. params = args.split(/\s?\|\s?/).reject(&:empty?)
  12. operation.call(event, *params)
  13. end
  14. end