2009-07-07 8 views
0

J'utilise HighLine pour écrire mon application console et je voudrais modifier HighLine :: Question :: in_range! Fonctionne de sorte que l'achèvement des tabulations reste activé mais que les highlines ne prennent pas la peine de vérifier si les mots tapés sont dans la plage.Réécrire une classe ruby ​​à la volée

Alors disons que j'ai une liste de la touche de tabulation comme% p {app1, App2, ANN3}

Je voudrais être en mesure de le faire dans ma console:

app1 -option1 valeur1 - D'après ce que je comprends du code dans HighLine, il me semble que je devrais passer le in_range! vérifier, de sorte que la fonction doit retourner vrai.

Je ne veux pas modifier à la source de code HighLine directement dans son fichier évidemment. Je cherche donc une solution pour pouvoir modifier ou réécrire cette fonction à la volée dans mon propre code. Y a-t-il une solution pour faire ce que je cherche?

Merci pour votre temps et j'espère avoir suffisamment posé ma question.

Répondre

4

Si vous souhaitez modifier la méthode in_range? pour un objet Question particulier x, vous pouvez faire

class << x 
    def in_range? 
    true 
    end 
end 

Si vous souhaitez modifier pour tous les objetsQuestion:

class Question 
    def in_range? 
    true 
    end 
end 

Cependant , Je me demande si vous avez vraiment besoin de faire cela dans votre cas. Je pense que vous pouvez simplement définir above, below et in à nil dans votre question pour banaliser la vérification in_range?.

+0

Merci votre réponse a résolu mon problème :) – Benjamin

Questions connexes