Module: CultomePlayer::Plugins::Alias
- Included in:
- CultomePlayer::Plugins
- Defined in:
- lib/cultome_player/plugins/alias.rb
Instance Method Summary collapse
- #command_alias(cmd) ⇒ Object
- #description_alias ⇒ Object
- #respond_to?(name, include_all = false) ⇒ Boolean
- #sintax_alias ⇒ Object
- #usage_alias ⇒ Object
Instance Method Details
#command_alias(cmd) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 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 ⇒ Object
62 63 64 |
# 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) ⇒ Boolean
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# 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.) 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 ⇒ Object
58 59 60 |
# File 'lib/cultome_player/plugins/alias.rb', line 58 def sintax_alias /^literal (literal) bubble (literal) $/ end |
#usage_alias ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# 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 |