module CultomePlayer::Plugins::Alias
Public Instance Methods
command_alias(cmd)
click to toggle source
# File lib/cultome_player/plugins/alias.rb, line 5 def command_alias(cmd) if cmd.params.empty? msg = plugin_config(:alias).to_a.reduce("") do |acc,arr| acc += "#{arr[0]} => #{arr[1]}\n" end return success(c15(msg)) else command = cmd.params.first.value aka = cmd.params.last.value plugin_config(:alias)[aka] = command return success("Alias '#{aka}' created!") end end
description_alias()
click to toggle source
# File lib/cultome_player/plugins/alias.rb, line 62 def description_alias "Create an alias for a command." end
respond_to?(name, include_all=false)
click to toggle source
Calls superclass method
# File lib/cultome_player/plugins/alias.rb, line 20 def respond_to?(name, include_all=false) # si no esta buscando commands lo dejamos pasar return super unless name =~ /^command_(.+?)$/ # si el comando existe, lo dejamos pasar return true if super # aqui podria ser un alias aka = $1 cmd_aliased = plugin_config(:alias)[aka] # si no es un alias, lo dejamos pasar return false if cmd_aliased.nil? # aqui definimos los metodos requeridos para el alias # alias execution... self.class.send(:define_method, "command_#{aka}".to_sym) do |cmd| prepared_command = cmd_aliased.clone # we replace parameters cmd.params_values(:literal).each.with_index do |p, idx| prepared_command.gsub!(/%#{idx + 1}/, "'#{p}'") # TODO aqui manejar los parametros con quotes end # execute the alias, and returns only the last response if in_session? begin r = execute_interactively(prepared_command) return success(no_response: true) #return success(no_response: true) rescue Exception => e return failure(e.message) end end return execute(prepared_command).last end # ...and sintax self.class.send(:define_method, "sintax_#{aka}".to_sym) do return /^literal(literal|[\s]+)*$/ # devolvemos la sintax para la invocacion del alias, no del comando end ## devolvemos exito return true end
sintax_alias()
click to toggle source
# File lib/cultome_player/plugins/alias.rb, line 58 def sintax_alias /^literal (literal) bubble (literal) $/ end
usage_alias()
click to toggle source
# File lib/cultome_player/plugins/alias.rb, line 66 def usage_alias return <<-USAGE usage: alias command => alias Creates an alias for a command. Similar to what the bash do. Can receive parameters in form of %<number>, eg %1, %2, %3... These parameters are passed when the alias is called. Examples: Create an alias to always play the first result in a search: alias "search %1 && play 1" => s And you would call it like s metallica USAGE end