Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > psychライブラリ > Psychモジュール
クラスの継承リスト: Psych
yaml のバックエンドのためのモジュールです。
dump(o, options = {}) -> String
[permalink][rdoc]dump(o, io, options = {}) -> ()
Ruby のオブジェクト o を YAML ドキュメントに変換します。
io に IO オブジェクトを指定した場合は、変換されたドキュメントが その IO に書き込まれます。 指定しなかった場合は変換されたドキュメントが文字列としてメソッドの返り値と なります。
options で出力に関するオプションを以下の指定できます。
YAML document に付加するバージョンを [major, minor] という配列、 もしくは文字列で指定します
出力にヘッダを付けるかどうかを真偽値で指定します
インデントのレベルを 1 から 9 までの整数で指定します
出力の style が canonical であるかどうかを真偽値で指定します
「好ましい」行幅を整数値で指定します
# Dump an array, get back a YAML string Psych.dump(['a', 'b']) # => "---\n- a\n- b\n" # Dump an array to an IO object Psych.dump(['a', 'b'], StringIO.new) # => #<StringIO:0x000001009d0890> # Dump an array with indentation set Psych.dump(['a', ['b']], :indentation => 3) # => "---\n- a\n- - b\n" # Dump an array to an IO with indentation set Psych.dump(['a', ['b']], StringIO.new, :indentation => 3)
dump_stream(*objects) -> String
[permalink][rdoc]オブジェクト列を YAML ドキュメント列に変換します。
Psych.dump_stream("foo\n ", {}) # => "--- ! \"foo\\n \"\n--- {}\n"
libyaml_version -> [Integer, Integer, Integer]
[permalink][rdoc]libyaml のバージョンを返します。
[major, minor patch-level] という 3 つの整数からなる配列を返します。
[SEE_ALSO] Psych::LIBYAML_VERSION
load(yaml, filename = nil) -> object
[permalink][rdoc]YAML ドキュメントを Ruby のデータ構造(オブジェクト)に変換します。
入力に複数のドキュメントが含まれている場合は、先頭のものを変換して 返します。
filename はパース中に発生した例外のメッセージに用います。
[SEE_ALSO] Psych.parse
Psych.load("--- a") # => 'a' Psych.load("---\n - a\n - b") # => ['a', 'b'] begin Psych.load("--- `", "file.txt") rescue Psych::SyntaxError => ex p ex.file # => 'file.txt' p ex.message # => "(file.txt): found character that cannot start any token while scanning for the next token at line 1 column 5" end
load_documents(yaml) -> [object]
[permalink][rdoc]load_documents(yaml) {|obj| ... } -> ()
複数の YAML ドキュメントを含むデータを Ruby のオブジェクトに変換します。 このメソッドは deprecated です。Psych.load_stream を代わりに 使ってください。
load_file(filename) -> object
[permalink][rdoc]filename で指定したファイルを YAML ドキュメントとして Ruby のオブジェクトに変換します。
load_stream(yaml, filename=nil) -> [object]
[permalink][rdoc]load_stream(yaml, filename=nil) {|obj| ... } -> ()
複数の YAML ドキュメントを含むデータを Ruby のオブジェクトに変換します。
ブロックなしの場合はオブジェクトの配列を返します。
Psych.load_stream("--- foo\n...\n--- bar\n...") # => ['foo', 'bar']
ブロックありの場合は各オブジェクト引数としてそのブロックを呼び出します。
list = [] Psych.load_stream("--- foo\n...\n--- bar\n...") do |ruby| list << ruby end list # => ['foo', 'bar']
filename はパース中に発生した例外のメッセージに用います。
parse(yaml, filename = nil) -> Psych::Nodes::Document
[permalink][rdoc]YAML ドキュメントをパースし、YAML の AST を返します。
入力に複数のドキュメントが含まれている場合は、先頭のものを AST に変換して 返します。
filename はパース中に発生した例外のメッセージに用います。
AST については Psych::Nodes を参照してください。
[SEE_ALSO] Psych.load
Psych.parse("---\n - a\n - b") # => #<Psych::Nodes::Document:...> begin Psych.parse("--- `", "file.txt") rescue Psych::SyntaxError => ex p ex.file # => 'file.txt' p ex.message # => "(file.txt): found character that cannot start any token while scanning for the next token at line 1 column 5" end
parse_file(filename) -> Psych::Nodes::Document
[permalink][rdoc]filename で指定したファイルをパースして YAML の AST を返します。
parse_stream(yaml) -> Psych::Nodes::Stream
[permalink][rdoc]parse_stream(yaml) {|node| ... } -> ()
YAML ドキュメントをパースします。 yaml が 複数の YAML ドキュメントを含む場合を取り扱うことができます。
ブロックなしの場合は YAML の AST (すべての YAML ドキュメントを 保持した Psych::Nodes::Stream オブジェクト)を返します。
ブロック付きの場合は、そのブロックに最初の YAML ドキュメント の Psych::Nodes::Document オブジェクトが渡されます。 この場合の返り値には意味がありません。
[SEE_ALSO] Psych::Nodes
Psych.parse_stream("---\n - a\n - b") # => #<Psych::Nodes::Stream:0x00>
parser -> Psych::Parser
[permalink][rdoc]デフォルトで使われるのパーサを返します。
to_json(o) -> String
[permalink][rdoc]Ruby のオブジェクト o を JSON の文字列に変換します。
LIBYAML_VERSION -> String
[permalink][rdoc]libyaml のバージョン。
VERSION -> String
[permalink][rdoc]Psych のバージョン。