コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

すばらしいYAML

Y.M.A.L.

テーテッテテー テッテレッテテレッテッテ(前奏)
ヤモゥ さあたちあがれよ
ヤモゥ 今翔びだそうぜ
ヤモゥ もう悩む事は ないんだから

はい、何をかいているんでしょうね僕は。最近思うんですけど、このブログ書いている人頭おかしいんじゃないかて思うんですよ。みなさんはどう思いますか?


まあ、頭がおかしいおかしくないの話はさておきまして、今日はこれについてやっていきます。

YAML(ヤメル、ヤムル)とは、構造化データやオブジェクトを文字列にシリアライズ(直列化)するためのデータ形式の一種。

YAMLはこんなやつです。XMLとかJSONとかそういったやつの仲間です。僕の中ではRubyのおまけでついてくる扱いやすいデータ形式ぐらいの感覚です。

公式
The Official YAML Web Site

ドットインストールにYAML講座があったので、それをやってみたらこんな記事ができてしまいました。どうしてこうなった。
YAML入門


そのまま写経したものを書いてアレなんですが、うちのRuby 2.5 だとload_documents使えませんでした。

ソース.rb

require 'yaml'
File.open('data.yml') do |io|
    YAML.load_stream(io) do |d|
        ### load_document 非推奨
        p d
    end
end

データ.yml

---
- 1
...
---
- A
...

とりあえず複数データの解釈が必要な場合はこれでいけるっぽいです。コメントに適当なこと書きましたがそれで動いてしまったので、そういうことにしてます。みんなはちゃんとリファレンスを読もうね。まあ、YAMLってそんな感じのものです。何が便利になるかというと設定ファイルとかの記述に役立つとか役立たないとかって感じです。


メモとして実行サンプルを残すことにした

こんなタイトルと導入文をつけている人間だから、絶対に読み返すことはないと思われますが "やった感" を演出するために学習メモを残そうと思います。

確認用.rb

require 'yaml'
data = YAML.load_file('data.yml')
puts data

データ.yml

- Unko
## 出力: Unko

["Unko", "Unko"]
##  出力: Unko Unko

- Unko
-
  - morimori
  - buriburi
## 出力: Unko morimori buriburi


name: unko
strength: morimori
## 出力: {"name"=>"unko", "strength"=>"morimori"}

{name: unko, strength: buriburi}
## 出力: {"name"=>"unko", "strength"=>"buriburi"}

name: unko
strength: 
  power: 100
  vitality: morimori
## 出力: {"name"=>"unko", "strength"=>{"power"=>100, "vitality"=>"morimori"}}


name: [unko,unchi]
power: [100,120]
## 出力: {"name"=>["unko", "unchi"], "power"=>[100, 120]}

 - {name: unko, score: 100}
 - {name: unchi, score: 120}
## 出力: {"name"=>"unko", "score"=>100} {"name"=>"unchi", "score"=>120}

とこんな感じで書き方によって微妙に出力される形式が異なるようです。例文がひどすぎる……。


あ、そのほか機能にこんなのもあるっぽいですよ。

### 改行  | |+ |-   > >+ >-

### アンカーとエイリアス
# - &leader tanaka #アンカー
# - *leader #エイリアス

いやー、これだけ機能が豊富だと便利すぎてすばらしいですね(タイトル回収)。