methods=Kernel/i.y.yaml,Class/i.to_yaml.yaml,Object/i.to_yaml.yaml,Object/i.to_yaml_style.yaml,Object/i.to_yaml_properties.yaml,Struct/s.yaml_tag_class_name.yaml,Struct/s.yaml_tag_read_class.yaml,String/i.is_complex_yaml=3f.yaml,String/i.is_binary_data=3f.yaml
sublibraries=yaml.store
requires=
classes=YAML,YAML=Stream,YAML=Error,YAML=ParseError,YAML=TypeError,YAML=YPath,YAML=BaseNode,YAML=YamlNode
is_sublibrary=false

構造化されたデータを表現するフォーマットであるYAML (YAML Ain't Markup Language) を扱うためのライブラリです。

例１: 構造化された配列
  require 'yaml'

  data = [ "Taro san", "Jiro san", "Saburo san"]
  str_r = YAML.dump(data)

  str_l =<<EOT
  --- 
  - Taro san
  - Jiro san
  - Saburo san
  EOT

  p str_r == str_l #=> true

例２：構造化されたハッシュ

  require 'yaml'
  require 'date'

  str_l =<<YAML_EOT
  Tanaka Taro: { age: 35, birthday: 1970-01-01}
  Suzuki Suneo: {
    age: 13,
    birthday: 1992-12-21
  }
  YAML_EOT

  str_r = {}
  str_r["Tanaka Taro"] = {
    "age" => 35,
    "birthday" => Date.new(1970, 1, 1)
  }
  str_r["Suzuki Suneo"] = {
    "age" => 13,
    "birthday" => Date.new(1992, 12, 21)
  }

  p str_r == YAML.load(str_l) #=> true

例３：構造化されたログ

  require 'yaml'
  require 'stringio'

  strio_r = StringIO.new(<<EOT
  ---
  time: 2008-02-25 17:03:12 +09:00
  target: YAML
  version: 4
  log: | 
    例を加えた。
    アブストラクトを修正した。
  ---
  time: 2008-02-24 17:00:35 +09:00
  target: YAML
  version: 3
  log: | 
    アブストラクトを書いた。 

  EOT
  )

  YAML.load_stream(strio_r).documents.sort{|a, b| a["version"] <=> b["version"]}.each{|obj|
    printf "version %d\ntime %s\ntarget:%s\n%s\n", obj["version"], obj["time"], obj["target"], obj["log"]
  }
