| Age | Commit message (Collapse) | Author | 
|---|
|  | Options such as --userimg=<path> should be parsed as an option with an
equals in its name ("userimg=") and without the path argument in
Option.name
Closes #34219.
Signed-off-by: Jack Nagel <jacknagel@gmail.com> | 
|  | Allows remapping one option name to another and updates build options
and flags accordingly. | 
|  | Used to capture options that are being renamed. | 
|  |  | 
|  |  | 
|  |  | 
|  | We no longer need implicit conversion of options to strings. | 
|  | Follow-up to 23d90a6a187a57fbdf4eeac146993e3b37c3d4d9. | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | This reverts commit cee42c339e7632eab15111e2c4e6c121ace6f9e2. | 
|  | This reverts commit 8d2ef974a3a87bf4207f71ccb8a7b4776e16a016. | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | The implementation of #eql? and #hash should ensure that if a.eql?(b),
then a.hash == b.hash, but #eql? itself should not *depend* on #hash.
For example, given
  class Thingy
    def eql?
      instance_of?(other.class) && hash == other.hash
    end
    def hash
      [name, *tags].hash
    end
  end
if #hash produces a collision for different values of [name, *tags], two
Thingy objects will appear to be eql?, even though this is not the case.
Instead, #eql? should depend on the equality of name and tags directly. | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | Fixes #17434. | 
|  | The array of options that is passed to the spawned build process is a
combination of the current ARGV, options passed in by a dependent
formula, and an existing install receipt. The objects that are
interacting here each expect the resulting collection to have certain
properties, and the expectations are not consistent.
Clear up this confusing mess by only dealing with Options collections.
This keeps our representation of options uniform across the codebase.
We can remove BuildOptions dependency on HomebrewArgvExtension, which
allows us to pass any Array-like collection to Tab.create. The only
other site inside of FormulaInstaller that uses the array is the #exec
call, and there it is splatted and thus we can substitute our Options
collection there as well. | 
|  | Currently we handle options in several ways, and it is hard to remember
what code needs an option string ("--foo"), what needs only the name
("foo") and what needs an Option object.
Now that Option objects can act as strings and be converted to JSON, we
can start using them instead of passing around strings between Formula
objects, Tab objects, and ARGV-style arrays.
The Options class is a special collection that can be queried for the
inclusion of options in any form: '--foo', 'foo', or Option.new("foo"). |