À l'aide de "retour" dans un bloc Ruby

Je suis en train d'utiliser Ruby 1.9.1 pour un langage de script incorporé, de sorte que "l'utilisateur final" le code est écrit en Ruby bloc. Un problème, c'est que je voudrais que les utilisateurs soient en mesure d'utiliser le "retour" de mots clés dans les blocs, ils n'ont pas besoin de s'inquiéter à propos de rendement implicite des valeurs. Avec cela à l'esprit, c'est le genre de chose que j'aimerais être capable de faire:

def thing(*args, &block)
  value = block.call
  puts "value=#{value}"
end

thing {
  return 6 * 7
}

Si j'utilise le 'retour' dans l'exemple ci-dessus, j'obtiens un LocalJumpError. Je suis conscient que c'est parce que le bloc en question est un Proc et pas un lambda. Le code fonctionne, si je retire le 'retour', mais je préfère vraiment être en mesure d'utiliser le 'retour' dans ce scénario. Est-ce possible? J'ai essayé de convertir le bloc à un lambda, mais le résultat est le même.

InformationsquelleAutor MetaFu | 2010-02-24