mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* ext/psych/lib/psych/visitors/to_ruby.rb: Added ability to load array
subclasses with ivars. * ext/psych/lib/psych/visitors/yaml_tree.rb: Added ability to dump array subclasses with ivars. * test/psych/test_array.rb: corresponding tests git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									e58d77bdda
								
							
						
					
					
						commit
						ee3ebc2de5
					
				
					 4 changed files with 92 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -2,11 +2,39 @@ require 'psych/helper'
 | 
			
		|||
 | 
			
		||||
module Psych
 | 
			
		||||
  class TestArray < TestCase
 | 
			
		||||
    class X < Array
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    class Y < Array
 | 
			
		||||
      attr_accessor :val
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def setup
 | 
			
		||||
      super
 | 
			
		||||
      @list = [{ :a => 'b' }, 'foo']
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def test_subclass
 | 
			
		||||
      yaml = Psych.dump X.new
 | 
			
		||||
      assert_match X.name, yaml
 | 
			
		||||
 | 
			
		||||
      list = X.new
 | 
			
		||||
      list << 1
 | 
			
		||||
      assert_equal X, list.class
 | 
			
		||||
      assert_equal 1, list.first
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def test_subclass_with_attributes
 | 
			
		||||
      y = Psych.load Psych.dump Y.new.tap {|y| y.val = 1}
 | 
			
		||||
      assert_equal Y, y.class
 | 
			
		||||
      assert_equal 1, y.val
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def test_backwards_with_syck
 | 
			
		||||
      x = Psych.load "--- !seq:#{X.name} []\n\n"
 | 
			
		||||
      assert_equal X, x.class
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def test_self_referential
 | 
			
		||||
      @list << @list
 | 
			
		||||
      assert_cycle(@list)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue