2016-11-07 5 views
-2

スクリプトに与えられた引数に基づいてyamlファイルを解析するルビスクリプトを書く必要があります。以下は特定のアイテムのシーケンスリストを解析し、それをrubyを使ってyamlのキーにマッピングします。

YAMLファイルがどのようなものかに似たものの一例である:そうのようなスクリプトを実行できるようにしたいと思い

server01: 
    - mail 
    - dhcp 
    - dns 
server02: 
    - mail 
    - dhcp 

、./test.rb -sは

を郵送シーケンスリストにメールを持っているサーバのリストを返すようにしてください。

これは可能ですか?

答えて

1

'mail'を正しい引数に置き換えてください。私はARGV[1]のようなものを推測していますか? (:最初&) `の代わりに` keys`のこの問題を解決する必要があり

require 'yaml' 
h = YAML.load_file('config.yaml') 
h.select { |k, v| v.include?('mail') }.keys 
# => should return ["server01","server02"] 
+0

は、私は、Array –

+1

のための未定義のメソッドキーが '.MAPを@TonyD得ます。あなたは 'collect {| k、v | k if v.include( 'mail)}。compact' – engineersmnky

+0

@engineersmnkyありがとう!それはそうです!今私の次のステップは、ユーザーが入力したものが存在するかどうかを確認して確認し、終了したり、最初に尋ねたものに移動したりすることです。ありがとう! –

関連する問題