La métaprogrammation avec Ruby
Billet publié le 07/08/2007, catégorisé en Ruby
La métaprogrammation permet de personnaliser de Ruby à ses besoins, pour en faire un langage de programmation sur mesure. Que demander de plus à un langage haute-couture haute-programmation? Voici quelques exemples d'utilisation :
- Créer dynamiquement des fonctions d'après un unique prototype avec eval
1 2 3 4 5 6 7
def make_function(function_name) eval <<- FLAG def #{function_name}(function_arg) @#{function_name} = function_arg end FLAG end
- Définir une syntaxe ouverte avec public_method_defined?(symbol)
- Modifier une fonction avec wrap_method
1 2 3 4 5 6 7 8
class Module def modify_function(function_name) wrap_method(function_name) do |org_method, args, block| # exemple: args = args.collect{|x| puts x} org_method.call(*args, &block) end end end
- Charger dynamiquement des fichiers de codes avec load et require


Pourquoi ne pas réagir à cet article tant qu'il est encore chaud ?