diff options
| -rw-r--r-- | Library/Homebrew/options.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_options.rb | 6 | 
2 files changed, 11 insertions, 0 deletions
| diff --git a/Library/Homebrew/options.rb b/Library/Homebrew/options.rb index b59cd2930..033e5b69e 100644 --- a/Library/Homebrew/options.rb +++ b/Library/Homebrew/options.rb @@ -54,6 +54,11 @@ class Options      @options = Set.new(*args)    end +  def initialize_copy(other) +    super +    @options = @options.dup +  end +    def each(*args, &block)      @options.each(*args, &block)    end diff --git a/Library/Homebrew/test/test_options.rb b/Library/Homebrew/test/test_options.rb index b0f560354..493aa100a 100644 --- a/Library/Homebrew/test/test_options.rb +++ b/Library/Homebrew/test/test_options.rb @@ -152,4 +152,10 @@ class OptionsTests < Test::Unit::TestCase      debug = Option.new("-d")      assert_equal [verbose, debug].sort, Options.coerce(array).to_a.sort    end + +  def test_copies_do_not_share_underlying_collection +    copy = @options.dup << Option.new("foo") +    assert_empty @options +    assert_equal 1, copy.count +  end  end | 
