2012年7月23日月曜日

YAMLで何か継承みたいな事

rubyでプログラミングをする時に、よく使われるyaml形式について、今日初めて知った事があるので、記載する。
※yamlとは:http://jp.rubyist.net/magazine/?0009-YAML

なんかこう、仮に以下のように「developmentとproductionで大体同じ値なんだけど、productionのfugaだけちょっと値を変えたいなー」ってデータがあったとき、共通の部分を切り出したくなると思います。

 
development:
  hoge: 'common'
  fuga: 'common'
production
  hoge: 'common'
  fuga: 'production'

こう言う時に、yamlのマージと言う機能を使うと、以下のように書く事が出来ます。

 
common: &common
  hoge: 'common'
  fuga: 'common'
development:
  <<: *common
production:
  <<: *common
  fuga: 'production'                                

developmentとproductionはcommonの値を継承して、productionのfugaだけ値を上書きしてます。
便利ー

http://jp.rubyist.net/magazine/?0012-YAML
※この記事の「マージ」のあたりに詳しく書いてあります。

0 件のコメント:

コメントを投稿