diff options
| author | Jack Nagel | 2013-08-22 11:46:47 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-08-22 11:49:24 -0500 |
| commit | 94da753a7390f7b95b6d92516d162afada74b69e (patch) | |
| tree | 803981a485bb6e616facc8a783072d6e2857b0fa /Library/Homebrew | |
| parent | 5770f9bbf8e93cfc444451b97d8c957b2a7ca085 (diff) | |
| download | homebrew-94da753a7390f7b95b6d92516d162afada74b69e.tar.bz2 | |
Options: ensure copies do not share the underlying collection
Diffstat (limited to 'Library/Homebrew')
| -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 |
