mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	Define Set#to_set so that aSet.to_set returns self.
* lib/set.rb (Set#to_set): Define Set#to_set so that aSet.to_set returns self. [Fixes GH-359] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									74201103a9
								
							
						
					
					
						commit
						ad78cf4ea8
					
				
					 4 changed files with 22 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,8 @@
 | 
			
		|||
Fri Jul 19 11:16:54 2013  Akinori MUSHA  <knu@iDaemons.org>
 | 
			
		||||
 | 
			
		||||
	* lib/set.rb (Set#to_set): Define Set#to_set so that aSet.to_set
 | 
			
		||||
	  returns self. [Fixes GH-359]
 | 
			
		||||
 | 
			
		||||
Fri Jul 19 11:10:23 2013  Zachary Scott  <e@zzak.io>
 | 
			
		||||
 | 
			
		||||
	* lib/rake/*: [DOC] Capitalize "Ruby" in documentation
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								NEWS
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								NEWS
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -137,6 +137,10 @@ with all sufficient information, see the ChangeLog file.
 | 
			
		|||
 | 
			
		||||
=== Stdlib compatibility issues (excluding feature bug fixes)
 | 
			
		||||
 | 
			
		||||
* Set
 | 
			
		||||
  * incompatible changes:
 | 
			
		||||
    * Set#to_set now returns self instead of generating a copy.
 | 
			
		||||
 | 
			
		||||
* URI
 | 
			
		||||
  * incompatible changes:
 | 
			
		||||
    * URI.decode_www_form follows current WHATWG URL Standard.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								lib/set.rb
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								lib/set.rb
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -148,6 +148,16 @@ class Set
 | 
			
		|||
    @hash.keys
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Returns self if no arguments are given.  Otherwise, converts the
 | 
			
		||||
  # set to another with klass.new(self, *args, &block).
 | 
			
		||||
  #
 | 
			
		||||
  # In subclasses, returns klass.new(self, *args, &block) unless
 | 
			
		||||
  # overridden.
 | 
			
		||||
  def to_set(klass = Set, *args, &block)
 | 
			
		||||
    return self if instance_of?(Set) && klass == Set && block.nil? && args.empty?
 | 
			
		||||
    klass.new(self, *args, &block)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def flatten_merge(set, seen = Set.new) # :nodoc:
 | 
			
		||||
    set.each { |e|
 | 
			
		||||
      if e.is_a?(Set)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -625,6 +625,9 @@ class TC_Enumerable < Test::Unit::TestCase
 | 
			
		|||
    assert_instance_of(Set, set)
 | 
			
		||||
    assert_equal([-10,-8,-6,-4,-2], set.sort)
 | 
			
		||||
 | 
			
		||||
    assert_same set, set.to_set
 | 
			
		||||
    assert_not_same set, set.to_set { |o| o }
 | 
			
		||||
 | 
			
		||||
    set = ary.to_set(SortedSet)
 | 
			
		||||
    assert_instance_of(SortedSet, set)
 | 
			
		||||
    assert_equal([1,2,3,4,5], set.to_a)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue