When passing a block to set(), the block is not evaluated immediately,
but is instead evaluated the next time the variable is referenced. It's
called "lazy evaluation", and lets you defer the evaluation until the
variable is actually needed.
If you want it evaluated immediately, don't use a block:
set(:user, Capistrano::CLI.ui.ask("User name: "))
- Jamis