Module: YAML::BaseNode

Defined in:
lib/uttk/loaders/Yaml.rb

Constant Summary collapse

CLASS_KEY_LIST =
[:strategy, :wclass, :symtbl_class, :matcher]

Instance Method Summary collapse

Instance Method Details

#uttk_loader_yaml_transformObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/uttk/loaders/Yaml.rb', line 59

def uttk_loader_yaml_transform
  @type_id = nil unless defined? @type_id
  t = nil
  case @value
  when Hash
    t = Hash.new
    if HAVE_YAML_TAGURI
      @value.each do |k, v|
        key_transform(t, k, v)
      end
    else
      children_with_index.each do |v, k|
        key_transform(t, k, v)
      end
    end
  when Array
    if not @value.empty? and @value.all? { |x| x.is_a? Hash and x.size == 1 }
      t = OHash.new
      @value.each do |x|
        k, v = x.to_a
        key_transform(t, k, v)
      end
    else
      t = Array.new
      @value.each do |v|
        t.push v.uttk_loader_yaml_transform
      end
    end
  when /^:"(.*)"/, /^:(.*)/
    @type_id = nil
    t = $1.to_sym
  else
    return transform
  end
  YAML.transfer(@type_id, t)
end