module MPD::Commands

Contains classes representing MPD commands

Public Class Methods

define_option_command(class_name, command) click to toggle source

To define commands like “random <1/0>”

@!macro [attach] define_option_command

@!parse
  # Sends '$2 <1/0>' to MPD
  class Commands::$1 < Commands::Abstract
    # @param state [Boolean]
    def execute(state); end
  end
# File lib/mpd/commands.rb, line 52
def self.define_option_command(class_name, command)
  klass = Class.new(::MPD::Commands::Abstract) do
    define_method :execute do |state|
      exec_command("#{command} #{state ? '1' : '0'}")
    end
  end

  const_set(class_name, klass)
end
define_text_argument_command(class_name, command) click to toggle source

To define commands like 'save “whatever this is”'

@!macro [attach] define_text_argument_command

@!parse
  # Sends '$2 "<ARGUMENT>"' to MPD
  class Commands::$1 < Commands::Abstract; end
Calls superclass method
# File lib/mpd/commands.rb, line 32
def self.define_text_argument_command(class_name, command)
  klass = Class.new(::MPD::Commands::Abstract) do
    define_method :execute do |arg|
      super("#{command} \"#{arg}\"")
    end
  end

  const_set(class_name, klass)
end
define_trivial_command(class_name, command) click to toggle source

To decrease code amount

@!macro [attach] define_trivial_command

@!parse
  # Sends "$2" to MPD.
  class Commands::$1 < Commands::Abstract; end
Calls superclass method
# File lib/mpd/commands.rb, line 15
def self.define_trivial_command(class_name, command)
  klass = Class.new(::MPD::Commands::Abstract) do
    define_method :execute do
      super(command)
    end
  end

  const_set(class_name, klass)
end