元Webデザイナー兼コーダーの備忘録

ウェブデザインやプログラミング、ブログのカスタマイズなどについてアウトプットしています。

 メニュー

» HTML入門のまとめはこちらです。

YAML入門:ハッシュのマージ

ハッシュデータを別のデータに統合する方法を見ていきます。共通する部分を切り出してマージします。ハッシュのマージには、アンカーとエイリアスを利用します。なお、この記事はドットインストールというプログラミング学習サービスの内容を参考にしています。

作成するファイル

  • parse.rb
  • data.yml:データファイル

ファイルをそれぞれ以下のように作成します。

# parse.rb
require 'yaml'

emails = YAML.load_file('data.yml')

p emails
# data.yml

development:
  database: myapp_dev
  user: dbuser
  password: dbpassword

production:
  database: myapp_prod
  user: dbuser
  password: dbpassword

test:
  database: myapp_test
  user: dbuser
  password: dbpassword

上記は、DBの設定データを模した例です。

以下のコマンドで出力を確認します。

ruby parse.rb
{"development"=>{"database"=>"myapp_dev", "user"=>"dbuser", "password"=>"dbpassword"}, "production"=>{"database"=>"myapp_prod", "user"=>"dbuser", "password"=>"dbpassword"}, "test"=>{"database"=>"myapp_test", "user"=>"dbuser", "password"=>"dbpassword"}}

ハッシュのマージ:<<

userとpasswordは同じ値なので、一塊のデータに切り出します。それを元のデータにマージします。

# data.yml

common: &common
  user: dbuser
  password: dbpassword

development:
  database: myapp_dev
  <<: *common

production:
  database: myapp_prod
  <<: *common

test:
  database: myapp_test
  <<: *common

以下のコマンドで出力を確認します。

ruby parse.rb
{"common"=>{"user"=>"dbuser", "password"=>"dbpassword"}, "development"=>{"database"=>"myapp_dev", "user"=>"dbuser", "password"=>"dbpassword"}, "production"=>{"database"=>"myapp_prod", "user"=>"dbuser", "password"=>"dbpassword"}, "test"=>{"database"=>"myapp_test", "user"=>"dbuser", "password"=>"dbpassword"}}

まとめ

ハッシュのマージには、アンカーとエイリアスを利用します。元の記述からコードがすっきりしたのではないでしょうか。

参考サイト

YAML入門のまとめ記事なら... » YAML入門まとめ

» HTML入門のまとめはこちらです。