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