Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library yaml
library 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(opts = {})
[added by yaml]-
例外を発生する。
- [PARAM] opts:
- YAMLドキュメント出力の際のオプションを指定するが使われない。
- [EXCEPTION] TypeError:
require 'yaml' begin cc = Class.new cc.to_yaml rescue p $! #=> #<TypeError: can't dump anonymous class Class> end
Kernel#y(obj)
[added by yaml]-
オブジェクトをYAMLフォーマットで表示します。
- [PARAM] YAML:
フォーマットで表示したいオブジェクト
require 'yaml' class MyDog attr_accessor :name, :age end mydog = MyDog.new mydog.age = 17 p mydog #=> #<MyDog:0x2b080b8 @age=17> y mydog #=> --- !ruby/object:MyDog #=> age: 17
Object#to_yaml(opts = {})
[added by yaml]-
オブジェクトをYAMLドキュメントに変換します。
- [PARAM] opts:
- YAMLドキュメント出力の際のオプションを指定する。
require 'yaml' h = { :ugo => 17, :hoge => "fuga", } print h.to_yaml #=> --- #=> :ugo: 17 #=> :hoge: fuga class MyDog attr_accessor :name, :age end c = MyDog.new c.name = "Pochi" c.age = 3 print c.to_yaml #=> --- !ruby/object:MyDog #=> age: 3 #=> name: Pochi
Object#to_yaml_properties -> [String]
[added by yaml]-
Object#instance_variables.sortの結果を返します。
- [RETURN]
- オブジェクトのインスタンス変数名の配列
require 'yaml' h = { :ugo => 17, :hoge => "fuga", } p h.to_yaml_properties #=> [] class MyDog attr_accessor :name, :age end c = MyDog.new c.name = "Pochi" c.age = 3 p c.to_yaml_properties.join(",") #=> ["@age,@name"]
Object#to_yaml_style -> nil
[added by yaml]-
nilを返します。
- [RETURN]
- nilを返します。
require 'yaml' p to_yaml_style #=> nil a = [] p a.to_yaml_style #=> nil
String#is_binary_data?
[added by yaml]String#is_complex_yaml?
[added by yaml]Struct.yaml_tag_class_name -> String
[added by yaml]-
Struct::をのぞいたクラス名を返す
- [RETURN]
- Struct::をのぞいたクラス名
require 'yaml' YStruct = Struct.new("YStruct", :name) p YStruct::yaml_tag_class_name #=> "YStruct"
Struct.yaml_tag_read_class(name) -> String
[added by yaml]-
引数nameにStruct::を加えた文字列を返す
- [RETURN]
- 引数nameにStruct::を加えた文字列
require 'yaml' YStruct = Struct.new("YStruct", :name) p YStruct::yaml_tag_read_class("YStruct") #=> "Struct::YStruct"