2011-07-05 19 views
0

私は、次のYAML持っている:Rubyでサルの配列を取得する方法RubyでのYAMLの解析:特定のタイプの要素の配列を取得する方法は?

- name: List of monkeys 
- author: Nicolas Raoul 
- version: 1 
- monkey: Chee-Chee 
- monkey: Curious George 
- monkey: Mojo 

を?メタデータパラメータ(名前、著者、...)の数は可変です。私は多くの猿があるので、サブアイテムとして、すべてのサルを含むmonkeysノードを作成したくないと私は本当に単純なファイルを保存しておきたい:

それは[Chee-Chee, Curious George, Mojo]

ノートのようなものを返します。

答えて

1

よくお使いのYAMLは少し狂っています。これらの行のそれぞれは、1つの要素を含むhashです。あなたはそれで立ち往生している場合は、まだ、このようなものは、あなたの猿の名前の配列を取得します:

require 'yaml' 

data = YAML.load(DATA.read) 
p data.map { |row| row['monkey'] }.compact 

__END__ 
- name: List of monkeys 
- author: Nicolas Raoul 
- version: 1 
- monkey: Chee-Chee 
- monkey: Curious George 
- monkey: Mojo 

明らかにあなたはどこからでもYAMLを読み込むことができ、それはあなたのデータブロックである必要はありません。

+0

私はYAMLを初めて使用していますので、どんな提案も歓迎します:-)リストは顧客によって編集されるため、単純に死んではいけません。注:各サルには、簡潔さのためにここに書かなかったいくつかの属性があります。 –

+0

あなたの答えは、私が質問したように質問に有効です。簡潔さのために私が猿の属性を無視できるという私の仮定は間違っていることを証明するので、私は新しい質問を作成した:http://stackoverflow.com/questions/6578370 –

関連する問題