Je ne comprends pas pourquoi ma méthode translate
Annule la définition de la méthode et est déconner quelque chose dans RIR, donc je ne peux irb sortir en appuyant uniquement sur Ctrl + d, non exit
ou quit
:Pourquoi le mot «traduire» signifie-t-il déconner?
>> "hello".respond_to?(:start_with?)
=> true
>> def translate(string)
>> if string.start_with?("a", "e", "i", "o", "u")
>> string += "ay"
>> end
>> end
NoMethodError: undefined method `start_with?' for #<RubyVM::InstructionSequence:0x00000001d4c960>
from (irb):3:in `translate'
from /usr/local/rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
>> "hello".respond_to?(:start_with?)
NoMethodError: undefined method `start_with?' for <RubyVM::InstructionSequence:[email protected](irb)>:RubyVM::InstructionSequence
from (irb):3:in `translate'
from /usr/local/rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
>> exit
NoMethodError: undefined method `start_with?' for <RubyVM::InstructionSequence:[email protected](irb)>:RubyVM::InstructionSequence
from (irb):3:in `translate'
from /usr/local/rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
>> quit
NoMethodError: undefined method `start_with?' for <RubyVM::InstructionSequence:[email protected](irb)>:RubyVM::InstructionSequence
from (irb):3:in `translate'
from /usr/local/rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
>>
I essayé deux espaces de travail différents et l'effet est le même.
Mes versions Ruby et Rails sont:
~/workspace $ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
~/workspace $ rails -v
Rails 4.2.2
de my other question Je sais que ce mot translate
est utilisé par de nombreuses bibliothèques I18N, il est mon seul suspect, d'où le titre de cette question. Cependant en tant que débutant, je ne vois aucune relation.
Votre méthode fonctionne bien pour moi dans irb. Voyez si l'une de vos librairies code/libs effectue des correctifs/raffinements de singe sur 'String'. – GolfWolf
Vous dites que votre méthode 'translate' indéfinit' String # start_with? ', Mais il n'y a aucune indication de cela dans la transcription que vous avez montrée. Comment avez-vous déterminé que c'est effectivement ce qui se passe? –
@ w0lf J'ai lu à propos de ce patch de singe. Honnêtement, je ne sais pas comment vérifier cela, mais si c'est à cause de quelques gemmes, j'ai installé seulement 'ruby',' rails', 'rspec' et' pry' sur un espace de travail cloud9 vide. @ JörgWMittag 'méthode non définie' start_with? ''Ce n'est pas ce que vous voulez dire? J'ai essayé 'puts String.methods' mais la sortie est toujours la même, peu importe ce que je tape. Je peux seulement ctrl + d et redémarrer irb.Je également remarqué sur frais irb: > def traduit (s) > s met > fin # =>: traduire J'ai vérifié RubyVM Ruby-doc, mais pour l'instant ce est une magie arcanique –
ToTenMilan