読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

YMLファイルを読み込んで、特定の値を取り出す

<スポンサーリンク>

YAML(YAML Ain't Markup Language) とは、構造化されたデータを表現するためのフォーマットのこと。
XMLに比べて、
・読みやすい
・書きやすい
・わかりやすい

などの特徴を持つ。
YAMLについて詳しくは以下を参照してほしい。
http://magazine.rubyist.net/?0009-YAML

今回は、YAMLにユーザ名やパスワードなどの設定情報を保存し、それを読み込んで値を取り出してみる。
このサンプルで読み込むYAMLは以下のとおり。

・settings.yml

user:
 - name: hoge
   pass: fuga
   mails:
    - hoge@example.com
    - fuga@example.jp

 - name: tarou
   pass: yuuta
   mails:
    - taro@example.com
    - yuta@example.jp

2人のユーザのメールアドレスやパスワードを保持する設定ファイルである。

この設定ファイルから値を取り出す。
サンプルは以下のとおり。

require 'yaml'

config = YAML.load_file("settings.yml")
p config #結果①

users = config["user"]

p users #結果②

users.each do |user|
  puts user #結果③

  user.each do |key, value|
  	puts "key:#{key}   value:#{value}" #結果④
  end

  if user["name"] == "tarou"
  	puts "my name is #{user["name"]}" #結果⑤
  	puts "my passwd is #{user["pass"]}"
  	puts "my mail address is #{user["mails"]}"
  end
end

結果を見てみよう。
・結果①
読み込んだYMLが保持される。

{"user"=>[{"name"=>"hoge", "pass"=>"fuga", "mails"=>["hoge@example.com", "fuga@example.jp"]}, {"name"=>"tarou", "pass"=>"yuuta", "mails"=>["taro@example.com", "yuta@example.jp"]}]}

・結果②
user以下の連想配列

[{"name"=>"hoge", "pass"=>"fuga", "mails"=>["hoge@example.com", "fuga@example.jp"]}, {"name"=>"tarou", "pass"=>"yuuta", "mails"=>["taro@example.com", "yuta@example.jp"]}]

・結果③
user以下の配列をそれぞれ取り出す

{"name"=>"hoge", "pass"=>"fuga", "mails"=>["hoge@example.com", "fuga@example.jp"]}
{"name"=>"tarou", "pass"=>"yuuta", "mails"=>["taro@example.com", "yuta@example.jp"]}

・結果④
kyeとvalueを取り出す

key:name   value:hoge
key:pass   value:fuga
key:mails   value:["hoge@example.com", "fuga@example.jp"]

key:name   value:tarou
key:pass   value:yuuta
key:mails   value:["taro@example.com", "yuta@example.jp"]

・結果⑤
特定の名前の値を取り出して、その人の設定を取り出す

my name is tarou
my passwd is yuuta
my mail address is ["taro@example.com", "yuta@example.jp"]

Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232 (PROGRAMMER’S RECIPE)

Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232 (PROGRAMMER’S RECIPE)

  • 作者: 島田浩二,設樂洋爾,村田賢太,前田智樹,谷口文威
  • 出版社/メーカー: 翔泳社
  • 発売日: 2009/07/25
  • メディア: 単行本(ソフトカバー)
  • 購入: 16人 クリック: 349回
  • この商品を含むブログ (77件) を見る
この本を今日の昼に買って、パラパラと試し打ちしている。
広く色んなトピックを扱っていて、非常に役に立つ。