Sha256: 2c89269f7b3b204b23b89221ad547238cc4582063a9eebbea180e8e3499e57b9

Contents?: true

Size: 576 Bytes

Versions: 1

Compression:

Stored size: 576 Bytes

Contents

module <%= class_name %>
  class CommandsManager
    include CommandsKeeper

    attr_reader :command, :params, :message

    def initialize(args)
      @message = args.fetch(:message)
      @command = detect_command
      @params = parser.params
    end

    def call
      if self.class.instance_method(command).arity == 0
        send command
      else
        send command, params
      end
    end

    private

    def detect_command
      has_command?(parser.command) ? parser.command : :help
    end

    def parser
      MessageParser.new(message)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
botup-0.3.1 lib/botup/templates/commands_manager.erb