Se usa intensivamente en rails, tanto en la implementación de ActiveRecord como de la mayoría de plugins.
Para definir métodos de forma dinámica tan solo hay que redefinir method_missing, este método se llama cada vez que se llama a una función no definida, recibe como primer parámetro el nombre del método y como segundo parámetro la lista de argumentos.
Dejo un ejemplo.
#!/usr/bin/ruby
def method_missing(method, *args)
if method.to_s =~ /saludo_(\w+)/
generar_saludo($1)
else
super(method, *args)
end
end
def generar_saludo(msg)
puts "hola #{msg}"
end
saludo_mundo
0 comentarios:
Publicar un comentario