J'ai un énumérateur qui boucle sur les données d'une API externe. L'API demande que je le notifie lorsque j'ai fini de faire une boucle. Ceci est assez facile lorsque le recenseur est autorisé à aller jusqu'à épuisement des données:Comment puis-je "fermer" un recenseur dans Ruby?
def api_enum
return enum_for(:api_enum) unless block_given?
loop_on_api_calls { |thing| yield thing }
notify_api_that_i_am_done
end
Mais qu'en ce cas?
api_enum.each do |thing|
do_stuff(thing)
break
end
Le break
signifie que je ne vais jamais appeler notify_api_that_i_am_done
. Comment pourrais-je structurer ceci pour garantir que notify_api_that_i_am_done
est appelé? Y a-t-il un bon modèle pour cela?
Quel est le problème avec 'break notify_api_that_i_am_done'? – spickermann
@spickermann Honnêtement, je ne savais pas que c'était une chose. – abeger