Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > yamlライブラリ
構造化されたデータを表現するフォーマットであるYAML (YAML Ain't Markup Language) を扱うためのライブラリです。
例1: 構造化された配列
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
例2:構造化されたハッシュ
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
例3:構造化されたログ
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"]
}
| module YAML | YAML (YAML Ain't Markup Language) を扱うモジュールです。 |
| module YAML::BaseNode | |
| class YAML::Stream | YAMLドキュメントを複数保持することができるストリームクラスです。 |
| class YAML::YPath | YAML ドキュメントから特定のデータを検索する機能を提供するYPathのクラスです。 |
| class YAML::YamlNode |
| class YAML::Error | 意図しない入力がメソッドに与えられた時などに発生します。 |
| class YAML::ParseError | 将来のために予約されています。現在は発生しません。 |
| class YAML::TypeError | 意図しない入力がメソッドに与えられた時などに発生します。 |
| yaml/store | RubyのオブジェクトをYAML形式の外部ファイルに格納するためのクラスです。 |
Class#to_yaml
Kernel#y
Object#to_yaml
Object#to_yaml_properties
Object#to_yaml_style
String#is_binary_data?
String#is_complex_yaml?
Struct.yaml_tag_class_name
Struct.yaml_tag_read_class