2017-10-14 3 views

Répondre

0

trouvé la solution:

module BacktickURI 
    alias_method :standard_back_tick_call, :` #` #Comment for fixing Notepad++ highlighting, needs even back ticks 
    alias_method :standard_system_call, :system 

    def `(uri)#` 
     standard_back_tick_call(uri) 
    end 

    def system uri 
    standard_system_call uri 
end 
end 

Edit: Le code ci-dessus n'est pas tout le processus, il est juste le bit qui fait la tâche que je cherchais, mettre à jour les méthodes du système et backtick. Alias_method décale la portée avec include, empêchant la référence circulaire ou quelque chose comme ça.

+0

Quel est le point d'aliasing 'system' ici? Il semble que vous ayez une référence circulaire dans la définition de la méthode 'system'. Aussi, je pense qu'il serait plus facile de simplement créer une méthode wrapper et d'appeler cela à partir du code au lieu de backticks. –

+0

alias_method déplace la portée à l'exécution donc quand j'utilise include les quatre méthodes sont présentées comme des entités séparées (je pense que c'est ce qui se passe). Le but de ceci est d'empêcher moi et d'autres de travailler avec n'importe quel projet dans lequel il est intégré et de faire accidentellement un appel système quand ils ne le devraient pas. J'ai utilisé une approche de liste blanche pour la gestion. Si l'utilisateur doit faire quelque chose, il peut désactiver manuellement la fonction via un commutateur ajouté au module. – CBusBus