設定とかでおなじみの・・・
Ruby on Railsでデータベースの設定を記述したりするYAML。
いろんな設定とかが記述しやすいです。
データベース構築するほどでもないけど、ページテンプレートに沿って、このページならこれを呼び出す。みたいな処理ができないかなー?って。考えてみた。
YAMLファイルの記述
こんな感じで、YAMLファイルを記述します。
仮に hash_test.yml とでもします。
※わざとタグの記号を全角にしています。
keyword: Ruby YAML YML 学習
title: YAMLの読み込みと加工
content: |-
<p>YAMLファイルの操作</p>``
<div>システム操作です
スクリプト使って処理します</div>
改行いっぱい
検索用キーワードやタイトル(記述パターンが固定)、本文部分(タグや改行の記述パターンが、固定ではない)箇所が混在していると仮定します。
なお、本文部分は最終行以外改行したいので
最終行以外改行の設定をしています。
YAMLファイルを読み込み、加工するRubyスクリプト
指定したYAMLファイルを読み込んで、ハッシュとする。
そのうち、本文のデータを抜き出し、改行コードで配列分割するコードを試しに作って見ました。
require 'yaml'
str = ARGV[0]
data = YAML.load_file(str)
data.each do |key, value|
puts "key:#{key} value:#{value}"
end
hoge =data['content']
fuga = hoge.split("\n")
p fuga
実行例
$ ruby yml-print.rb hash_test.yml
key:keyword value:Ruby YAML YML 学習
key:title value:YAMLの読み込みと加工
key:content value:YAMLファイルの操作
システム操作です
スクリプト使って処理します
改行いっぱい
["YAMLファイルの操作", "システム操作です", "スクリプト使って処理します", "改行いっぱい"]
改行できましたー。
参考
プログラマーのための YAML 入門 (初級編)
http://magazine.rubyist.net/?0009-YAML
YAMLで改行する方法
http://d.hatena.ne.jp/shunsuk/20090822/1250937310
YMLファイルを読み込んで、特定の値を取り出す
http://blog.codebook-10000.com/entry/20140322/1395499315