Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > syck/basenodeライブラリ > Syck::BaseNodeモジュール
クラスの継承リスト: Syck::BaseNode
YAML のノードを検索するのためのモジュールです。
self[*key] -> object | [object] | nil[permalink][rdoc]引数で指定したキーに対応する値(もしくは引数で指定したインデックスに対応 する値の配列)を返します。対応する値がない場合は nil を返します。
at(segment) -> object | nil[permalink][rdoc]指定したキー(もしくはインデックス)に対応する値を返します。対応する値が ない場合は nil を返します。
children -> [object][permalink][rdoc]自身が持つ値の配列を返します。
children_with_index -> [[object, Integer]][permalink][rdoc]自身が持つ値とインデックス(もしくはキー)の配列の配列を返します。
emit -> String[permalink][rdoc]自身を YAML 形式の文字列にして返します。
match_path(ypath_str) -> Array[permalink][rdoc]ライブラリの内部で使用します。
match_segment(ypath, depth) -> Array[permalink][rdoc]ライブラリの内部で使用します。
search(ypath_str) -> [String][permalink][rdoc]引数で指定したパスのノードを検索します。見つかったパスの配列を返します。
require 'syck'
require 'yaml'
node = YAML.parse(DATA)
p node.search("//name") # => ["/dog/shiba/0/name", "/cat/0/name"]
p node.search("//(name|height)") # => ["/dog/shiba/0/name", "/cat/0/name"]
__END__
cat:
- name: taro
age: 7
dog:
shiba:
- name: jiro
age: 23
select(ypath_str) -> [YAML::Syck::Node][permalink][rdoc]引数で指定したパスのノードを検索します。見つかったノードの配列を返します。
require 'syck'
require 'yaml'
node = YAML.parse(DATA)
# "taro" と "jiro" のノードの配列を返す。
p node.select("//name")
# => [#<YAML::Syck::Scalar:0xf738b77c>, #<YAML::Syck::Scalar:0xf738b9ac>]
# [{"name"=>"taro", "age"=>7}] のノードの配列を返す。
p node.select("/cat")
# => [#<YAML::Syck::Seq:0xf7391910>]
__END__
cat:
- name: taro
age: 7
dog:
shiba:
- name: jiro
age: 23
select!(ypath_str) -> [object][permalink][rdoc]引数で指定したパスのノードを検索します。見つかったノードをそれぞれ Syck::Node#transform で Ruby のオブジェクトにした配列を返し ます。
require 'syck'
require 'yaml'
node = YAML.parse(DATA)
p node.select!("//name")
# => ["taro", "jiro"]
p node.select!("/cat")
# => [[{"name"=>"taro", "age"=>7}]]
__END__
cat:
- name: taro
age: 7
dog:
shiba:
- name: jiro
age: 23
[SEE_ALSO] Syck::Node#transform