You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
GoでCUEのバリデーション機能を利用しつつ、.cue/.json/.yaml形式の設定ファイルを読み込む 人間が読み書きする設定ファイルについて、2つのエントリーを紹介してきました。今回は第3段です。 一周回って、人間が読み書きする設定ファイルはJSONが良いと思った CUEを試して見る 前回のエントリーで、CUEはテキストファイルのフォーマットでありつつもJSON/YAMLと同等の表現力(階層が持てて、文字列や数値などを扱える)を持ち、なおかつCUEコマンドやライブラリでは.cue/.json/.yamlを同列に入力ファイルとして扱えるということを紹介しました。また、.cueファイルにスキーマを定義して、バリデーションが行えることも紹介しました。 今回は、Goのパッケージを利用して、.cue/.json/.yaml形式の設定ファイル読み込み機能をアプリケーションに組み込んでみます。本家
この投稿は、 Go アドベントカレンダーの 6日目のものになります。 はじめに GoでYAMLを扱う際にデファクトになっているのは、おそらく github.com/go-yaml/yaml でしょう。 実装はC言語で実装された libyaml を Go に移植しつつ、 Go ならではの機能を足す作りになっているのですが、 cgo を使わずに pure Go で移植されており、開発者の気合を感じます。 枯れている libyaml を利用していることからも、 YAML の仕様を忠実に実装していることが期待できます。 ですが、このライブラリにはいくつか使いにくい点もあり、例えば以下のようなことはできませんでした 構造体を埋め込む場合に、埋め込む型をポインタで定義できない ( ※ ポインタなしは大丈夫 ) encoding/json とコンパチの インターフェース ( MarshalYAML()
前回のエントリー、一周回って、人間が読み書きする設定ファイルはJSONが良いと思ったの続きです。 設定ファイルをどうするか問題はいろいろ悩ましい問題であります。そんな中、設定ファイル用言語という触れ込みのCUEがリリースされました。 すでに、NSSOLの方が、Linterとして使うという紹介記事をすでに書かれています。これはユースケースの一部(これでも有用ですが)です。まだ使い込んだわけではなく、チュートリアルとドキュメントを一通り読みつつ軽く試した程度ですが、全体的な紹介をしようと思います。 yamlやJsonのチェック(Lint)ができるCUEの紹介 CUEによってできるようになること主な特徴としては次のような感じです。 人が書く設定ファイル(JSON/YAML/TOML/iniあたりがライバル)のための言語 スキーマ定義が書けて、バリデーションが可能 テンプレート機能で一部が違うデー
Ansibleは勉強中の身なので初歩的な内容かもしれませんが、チュートリアルを見ていて気になったので。 なるべくYAML構文で書く モジュールのオプションをfoo=varみたいに書いている例をたまに見かけますが、横に長くなって読みにくいように思います。 YAMLの「>」(folded block構文)を使えば改行もできますが、そこまでやるなら素直にYAMLの構文で書いた方がいいと思いました。(素のYAMLの方がansible以外のプログラムでも扱いやすくなりますよね) before - name: configure sshd_config lineinfile: dest=/etc/ssh/sshd_config owner=root group=root mode=0600 backup=yes regexp="{{ item.regexp }}" line="{{ item.line
ansible の設定ファイルは YAML なのですが、 ansible の説明では YAML 由来のいろんな書き方についてはあまり説明がないので、 ansible の設定ファイルを書く時に知っておくと便利な YAML の知識についてまとめてみました。 YAML のバージョン The Official YAML Web Site によると YAML の仕様としては YAML 1.2 (3rd Edition) まで存在するようですが、 ansible は PyYaml を使っていて、 libyaml binding なので 対応している YAML のバージョンは YAML 1.1 (2nd Edition) になります。 コレクション 参考: 2.1. Collections 配列 - で列挙すると配列になります。 YAML は空白に敏感なので、 -foo のように書くとエラーになります。
来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…
August 2011 (1) July 2011 (1) June 2011 (2) April 2011 (2) March 2011 (2) February 2011 (2) January 2011 (6) December 2010 (6) November 2010 (5) October 2010 (8) September 2010 (2) August 2010 (3) July 2010 (9) June 2010 (4) March 2010 (1) February 2010 (7) January 2010 (2) はじめに XML か YAML か? どちらが優れているかという事はさておき、少なくとも 「YAMLの方が人に優しい」 と思います。 優しいとは 「読みやすい」「書きやすい」 という意味です。 昔、初めて Tomcat を使ったとき、設定ファイル(s
はじめに YAML(YAML Ain't Markup Language)とは、データを構造化して表現するためのフォーマットです。目的はXMLと似ていますが、インデントを主体とした記法のため、XMLより読みやすく、書きやすく、わかりやすくなっています。 またデータシリアライゼーション[1]に使えるように設計されているため、任意のデータ構造が表現できるだけの記述力を持っています。これは、基本的に木構造しか記述できないXMLと比べて、YAMLの大きな利点です。YAMLの文法については、WEB+DB PRESS Vol.43「最新[データ交換フォーマット]攻略ガイド JSON/YAML実践入門」の第3章「YAML実践リファレンス」に解説がありますので、併せて参照してください。 本特集では、YAMLをさまざまなプログラミング言語で利用するためのYAML用ライブラリの使い方を、各言語ごとに紹介してい
%YAML 1.2 --- YAML: YAML Ain't Markup Language™ What It Is: YAML is a human-friendly data serialization language for all programming languages. YAML Resources: YAML Specifications: - YAML 1.2: - Revision 1.2.2 # Oct 1, 2021 *New* - Revision 1.2.1 # Oct 1, 2009 - Revision 1.2.0 # Jul 21, 2009 - YAML 1.1 - YAML 1.0 YAML Matrix Chat: '#chat:yaml.io' # Our New Group Chat Room! YAML IRC Channel: libera
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く