in Ruby, vous pouvez appeler une API distante comme celle-ci si vous faites enregistrement de magnétoscope / la lecture aide pendant le développement, quand
L'API distante est chère.
D'utiliser le magnétoscope ou non devrait être facultatif, indiqué
Par le premier argument de la fonction: p> Ma question est, comment réécrire la méthode de sorte que "Block emballage" / "VCR.USE_Cassette (" Cassette_001 ") Faire "est conditionnel sur la valeur booléenne de la variable locale de devoir_use_vcr. p> Je pourrais faire p> mais pour une méthode complexe qui a" Net :: Http.get ("plus une douzaine de lignes supplémentaires, il y a trop de duplication du code,
Alors cherche une façon de le faire. p> p> gem installation gem code>, vous pouvez faire ce p>
3 Réponses :
Vous pouvez mettre le code dupliquer dans une méthode et appeler cette méthode enveloppée dans le magnétoscope de VCR ou sans magnétoscope. P>
peut donner de l'aide ici?
@ American-ninja-guerrier je ne pense pas, mais mon ruby est un peu rouillé. La création d'une méthode ne fonctionne pas avec le magnétoscope ou pourquoi demandez-vous sur le rendement?
Vous pouvez essayer d'utiliser l'approche suivante:
def get_remote_date
record_request { Net::HTTP.get('example.com', '/index.json') }
end
def record_request(&request)
ENV['RECORD_REQUEST'] ? VCR.use_cassette("cassette_001", &request) : request.call
end
Docs pour #call code> peut être trouvé Il .
illustrant une solution à base de rendement,