The `Hbc.outdated` boolean was in the way of my implementation of an
`outdated` scope for `brew cask outdated`, so I took the opportunity to:
* rename the flag internally to `cleanup_outdated`
* move the cleanup tests over to rspec and rework them to test in a
stubbed cleanroom environment
* refactor the implementation of cleanup to make it a bit more
testable - most importantly: inject the cache location and outdated
config dependencies instead of looking them up from constants
Note that there's no change to the user-facing interface, it's still
```
brew cask cleanup --outdated
```
Hbc is the namespace, Hbc::Cask is the object representing a Cask
One step on the path to reducing the surface area of the God-object
we've grown over the years. :)
Let the terminal decide how to display bold. Fixes#9349.
The issue arose when integrating Homebrew's `Tty` class.
Homebrew's `Tty.white` actually emits escapes for bold.
Fixing `Tty.white` to do what the method name says caused
loss of visibility on light backgrounds.
* contain logic within module Hbc::MacOS
* add release_with_patchlevel method
* allow MACOS_RELEASE and MACOS_RELEASE_WITH_PATCHLEVEL
environment variables to override the determined release
values regardless of whether under the test harness
and corresponding testing_env.rb.
* recast HOMEBREW_BREW_FILE as Hbc.homebrew_executable,
defined in Hbc::Locations
* recast HOMEBREW_REPOSITORY as Hbc.homebrew_repository
* recast HOMEBREW_PREFIX as Hbc.homebrew_prefix
* remove HOMEBREW_LIBRARY
* recast existing Hbc.tapspath as Hbc.homebrew_tapspath
to match new methods
fixes#8705
* convert existing Cask:: namespace to Hbc::
* move Homebrew-fork code under Hbc::
* move freestanding classes such as Tty and TopologicalHash under Hbc::
* recast HOMEBREW_CASK_ constants as HBC_
* modify our Homebrew Formula for backward compatibility
* devscripts and dev docs