RSS logo

Abonnez-vous à Proglog.

Accéder au flux RSS...

jobsprint ad


Devenez agile avec Jobsprint.


Atteignez vos buts...

Space Time Reconquista

Libérer la terre .

Engagez vous...

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 ?







Seules les balises "br" et "a" sont authorisées.
En précisant, si nécessaire, les attributs hreflang et title de vos liens,
vous participez à l'accessibilité de ce site, merci.