SIGN IN SIGN UP
Homebrew / brew UNCLAIMED

🍺 The missing package manager for macOS (or Linux)

0 0 185 Ruby

Replace throw/catch control flow with block return values

Ruby's throw/catch is a non-local control flow mechanism (a form of
goto). Replace all three uses with idiomatic Ruby patterns:

- Dependency: remove catch(:action) from `action`, use the block's
  return value directly. Callers signal actions via `next` with
  named constants (PRUNE, SKIP, KEEP_BUT_PRUNE_RECURSIVE_DEPS).
- Requirement: remove catch(:prune) from `prune?`, check the block's
  return value against the PRUNE constant.
- Livecheck: extract nested loop into `find_version_update_revision`
  helper and use `return` for early exit.

Remove the now-unnecessary `prune`, `skip`, and
`keep_but_prune_recursive_deps` class methods and update all callers
and type signatures.
D
Douglas Eichelberger committed
63d80a98a7c221d793d73b29a3f7706df596e294
Parent: 18c76d9