aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/options.rb4
-rw-r--r--Library/Homebrew/test/test_options.rb7
2 files changed, 11 insertions, 0 deletions
diff --git a/Library/Homebrew/options.rb b/Library/Homebrew/options.rb
index 337281546..c3b15b06e 100644
--- a/Library/Homebrew/options.rb
+++ b/Library/Homebrew/options.rb
@@ -83,6 +83,10 @@ class Options
Options.new(@options & o)
end
+ def |(o)
+ Options.new(@options | o)
+ end
+
def *(arg)
@options.to_a * arg
end
diff --git a/Library/Homebrew/test/test_options.rb b/Library/Homebrew/test/test_options.rb
index 493aa100a..741581a01 100644
--- a/Library/Homebrew/test/test_options.rb
+++ b/Library/Homebrew/test/test_options.rb
@@ -126,6 +126,13 @@ class OptionsTests < Test::Unit::TestCase
assert_equal [foo], (@options & options).to_a
end
+ def test_set_union
+ foo, bar, baz = %w{foo bar baz}.map { |o| Option.new(o) }
+ options = Options.new << foo << bar
+ @options << foo << baz
+ assert_equal [foo, bar, baz].sort, (@options | options).to_a.sort
+ end
+
def test_coerce_with_options
assert_same @options, Options.coerce(@options)
end