Bo Anderson
abfbb46678
Freeze formula definition once first instance is created
2022-08-31 20:40:42 +01:00
Bo Anderson
e49a338896
Implement caching for dependency expansion
2021-03-20 16:56:00 +00:00
Markus Reiter
da9289eff0
Add more type signatures.
2020-11-13 12:26:36 +01:00
Markus Reiter
24ae318a3d
Move type annotations into files.
2020-10-10 14:59:39 +02:00
Mike McQuaid
dba1cfbec9
options: handle nil
array.
...
Fixes #8835
2020-10-02 13:48:26 +01:00
Mike McQuaid
2e5272d04c
Deprecate/disable code for Homebrew 2.5.0.
...
Do the usual "disable deprecations" and "uncomment pending deprecations"
dance and delete/deprecate/disable relevant/related code.
2020-09-03 10:34:22 +01:00
Markus Reiter
5540eac625
Refactor and document Options
.
2020-08-19 10:40:33 +02:00
Mike McQuaid
36dbad3922
Add frozen_string_literal to all files.
2019-04-20 13:27:36 +09:00
Markus Reiter
e9b9ea49a1
Update to RuboCop 0.59.1.
2018-09-17 03:45:59 +02:00
Andrew Janke
e0a8a79921
Style fixes for Rubocop 0.57.1
2018-06-30 19:40:14 -04:00
Mike McQuaid
9fca172d03
Fix HOMEBREW_RUBY_WARNINGS="-w"
...
Fix various circular requirements, method redefinitions, etc.
2018-04-07 20:28:56 +01:00
Mike McQuaid
cf5fdeef1d
Rubocop: manual rule fixes.
2017-09-24 21:23:59 +01:00
Markus Reiter
0ab750bf24
Use module_function
for commands.
2016-10-02 00:24:47 +02:00
Markus Reiter
e851c9bf6c
Style/Alias: Prefer alias
.
2016-09-23 18:19:53 +02:00
Markus Reiter
52ff988530
Fix RuboCop CaseEquality.
2016-09-23 15:30:06 +02:00
Baptiste Fontaine
b7e98b129c
cmd/options.rb: move common code in options.rb
...
Closes Homebrew/homebrew#47423 .
Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-12-27 22:16:46 +01:00
BrewTestBot
13d544e11e
Core files style updates.
...
Closes Homebrew/homebrew#42354 .
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-08-03 13:22:35 +01:00
Elliot Saba
6a1f829cfa
Ensure that equals options get parsed properly
...
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 Homebrew/homebrew#34219 .
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-11-15 17:17:50 -06:00
Mike McQuaid
02e10beb7c
Add deprecated_option to software_spec.
...
Allows remapping one option name to another and updates build options
and flags accordingly.
2014-10-19 13:58:52 +01:00
Mike McQuaid
da0a65356d
Add DeprecatedOption class.
...
Used to capture options that are being renamed.
2014-10-19 13:58:52 +01:00
Jack Nagel
977ae5f27d
Collapse iteration to a map
2014-08-29 19:38:32 -05:00
Jack Nagel
750d7bb2c8
Options internals no longer need to support switches
2014-08-29 19:38:32 -05:00
Jack Nagel
6885f588d0
Move handling of leading dashes to Options.create
2014-08-29 19:38:32 -05:00
Jack Nagel
f7f8ca45fc
Remove to_str from Option
...
We no longer need implicit conversion of options to strings.
2014-08-27 14:08:14 -05:00
Jack Nagel
af3d551de7
Options no longer needs deep-copy semantics
...
Follow-up to 23d90a6a187a57fbdf4eeac146993e3b37c3d4d9.
2014-08-20 19:05:49 -05:00
Jack Nagel
ae4b9fffd4
Avoid hardcoding the class name
2014-08-13 23:45:48 -05:00
Jack Nagel
2311181b54
Remove Options#concat
2014-08-13 18:16:25 -05:00
Jack Nagel
268cd143be
Replace Options.coerce with an alternate constructor
2014-08-13 11:09:57 -05:00
Jack Nagel
094c184b12
Remove unused branches from Options.coerce
2014-08-13 11:09:57 -05:00
Mike McQuaid
00d1bb8d12
Revert "Remove unused branches from Options.coerce"
...
This reverts commit cee42c339e7632eab15111e2c4e6c121ace6f9e2.
2014-08-13 08:45:07 +01:00
Mike McQuaid
a61c3615d2
Revert "Replace Options.coerce with an alternate constructor"
...
This reverts commit 8d2ef974a3a87bf4207f71ccb8a7b4776e16a016.
2014-08-13 08:45:06 +01:00
Jack Nagel
25395c6de6
Replace Options.coerce with an alternate constructor
2014-08-12 23:55:28 -05:00
Jack Nagel
0a2be32d80
Remove unused branches from Options.coerce
2014-08-12 23:55:28 -05:00
Jack Nagel
8039107afb
Default to the empty string instead of nil
2014-08-07 00:48:13 -05:00
Jack Nagel
9e7f5dc261
Merge instead of calling << in a loop
2014-07-07 09:15:56 -05:00
Jack Nagel
aad09a5a63
Option does not need to be Comparable
2014-07-03 19:29:18 -05:00
Jack Nagel
3f6827374f
Use to_a definition from Enumerable
2014-07-01 21:26:41 -05:00
Jack Nagel
fbefa76ce2
Always use class.name to build inspect strings
2014-07-01 18:39:15 -05:00
Jack Nagel
14aa1de33c
Fix warning under Ruby 2.2
2014-06-09 15:04:15 -05:00
Jack Nagel
b2ccbfe6af
Add set union to Options
2014-02-27 14:22:42 -06:00
Jack Nagel
95af184a0c
Add an accessor to make the intent more clear here
2013-08-22 17:45:08 -05:00
Jack Nagel
9b2e04593f
Options: ensure copies do not share the underlying collection
2013-08-22 11:49:24 -05:00
Jack Nagel
10949ad75d
Fix some #eql? correctness issues
...
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.
2013-06-27 01:18:45 -05:00
Jack Nagel
d6929f96a5
Use OkJson directly
2013-06-22 21:34:03 -05:00
Jack Nagel
d596303199
Simplify Options#inspect
2013-06-07 20:36:13 -05:00
Jack Nagel
92857a7bd8
Define inspect on Option and Options
2013-05-24 10:56:02 -05:00
Jack Nagel
5bf652ecdd
Avoid extra array allocations
2013-05-06 16:52:26 -05:00
Jack Nagel
0c27a8765e
Don't shadow outer local variable
2013-02-17 20:57:10 -06:00
Jack Nagel
3414b4d689
Fix passing multiple switches as a single word to the build
...
Fixes Homebrew/homebrew#17434 .
2013-01-30 11:09:33 -06:00
Jack Nagel
cf08b71bf8
FormulaInstaller: construct new ARGV from an Options collection
...
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.
2013-01-26 12:14:47 -06:00