ruby-changes:14294
From: marcandre <ko1@a...>
Date: Sat, 19 Dec 2009 09:30:59 +0900 (JST)
Subject: [ruby-changes:14294] Ruby:r26120 (trunk): * lib/set.rb: Add checks that passed argument is Enumerable.
marcandre 2009-12-19 09:29:54 +0900 (Sat, 19 Dec 2009) New Revision: 26120 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26120 Log: * lib/set.rb: Add checks that passed argument is Enumerable. [ruby-core:23844] Modified files: trunk/ChangeLog trunk/lib/set.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 26119) +++ ChangeLog (revision 26120) @@ -1,3 +1,8 @@ +Sat Dec 19 09:29:22 2009 Marc-Andre Lafortune <ruby-core@m...> + + * lib/set.rb: Add checks that passed argument is Enumerable. + [ruby-core:23844] + Wed Dec 16 20:28:46 2009 Kazuhiro NISHIYAMA <zn@m...> * test/ruby/envutil.rb: fix a typo in assert message. Index: lib/set.rb =================================================================== --- lib/set.rb (revision 26119) +++ lib/set.rb (revision 26120) @@ -70,6 +70,7 @@ enum.nil? and return if block + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" enum.each { |o| add(block[o]) } else merge(enum) @@ -122,6 +123,7 @@ if enum.class == self.class @hash.replace(enum.instance_eval { @hash }) else + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" clear enum.each { |o| add(o) } end @@ -279,6 +281,7 @@ if enum.instance_of?(self.class) @hash.update(enum.instance_variable_get(:@hash)) else + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" enum.each { |o| add(o) } end @@ -288,6 +291,7 @@ # Deletes every element that appears in the given enumerable object # and returns self. def subtract(enum) + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" enum.each { |o| delete(o) } self end @@ -310,6 +314,7 @@ # Returns a new set containing elements common to the set and the # given enumerable object. def &(enum) + enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" n = self.class.new enum.each { |o| n.add(o) if include?(o) } n @@ -637,6 +642,7 @@ # end # # def replace(enum) +# enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" # clear # enum.each { |o| add(o) } # @@ -644,6 +650,7 @@ # end # # def merge(enum) +# enum.is_a?(Enumerable) or raise ArgumentError, "value must be enumerable" # enum.each { |o| add(o) } # # self @@ -711,10 +718,10 @@ Set.new([1,2]) Set.new('a'..'c') } - assert_raises(NoMethodError) { + assert_raises(ArgumentError) { Set.new(false) } - assert_raises(NoMethodError) { + assert_raises(ArgumentError) { Set.new(1) } assert_raises(ArgumentError) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/