Sha256: 34f2219afe9e8365ba912b22cb1b83de204f5d78cff7abc854fcf0912f82edc4

Contents?: true

Size: 1.38 KB

Versions: 4

Compression:

Stored size: 1.38 KB

Contents

# Copyright: Copyright (c) 2004  Nicolas Pouillard. All rights reserved.
# Author: Nicolas Pouillard  <ertai@lrde.epita.fr>.
# License: Gnu General Public License.

# $LastChangedBy: ertai $
# $Id: basenode_ext.rb 53 2004-12-02 22:24:03Z ertai $

require 'yaml'
require 'yaml/basenode'

module YAML

  module BaseNode

    def ordered_children_with_index
      arr = children_with_index
      arr.sort! { |a,b| b[0].object_id <=> a[0].object_id } unless arr.nil?
      arr
    end

    def ordered_children_indexes
      arr = ordered_children_with_index
      arr.map! { |x| x[1] } unless arr.nil?
      arr
    end
    
    def ordered_children
      arr = children
      arr.map! { |x| x[0] } unless arr.nil?
      arr
    end
    
  end # module BaseNode

end # module YAML


if defined? TEST_MODE or $0 == __FILE__

  require 'test/unit'
  class BaseNodeExtTest < Test::Unit::TestCase

    def basenode_checker ( my, ref )
      node = YAML::parse(my)
      assert_equal(node.ordered_children_indexes, ref)
    end

    def test_basenode1
      basenode_checker('--- { d: 4, a: 1, b: 2, c: 3 }', ["d", "a", "b", "c"])
    end

    def test_basenode2
      basenode_checker('--- { a: 1, d: 42, b: 2, c: 3 }', ["a", "d", "b", "c"])
    end

    def test_basenode3
      basenode_checker(
        '--- { a: :"1", d: "foo", b: [2,3], c: {} }', ["a", "d", "b", "c"])
    end
  
  end # class BaseNodeExtTest

end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
ttk-0.1.576 ruby_ex/yaml/basenode_ext.rb
ttk-0.1.580 ruby_ex/yaml/basenode_ext.rb
ttk-0.1.579 ruby_ex/yaml/basenode_ext.rb
vcs-0.2.148 ruby_ex/yaml/basenode_ext.rb