Ruby 標準機能・ライブラリ確認シリーズ。
今回はset
,RDoc
,rake
参考
Set
Set が表すのは、集合。
配列と比べて、要素に順序関係がありません。
1 | require 'set' |
(|
の後ろは解釈が上手くいかないようで、シンタックスハイライトがおかしい)
配列で結果を受け取って並べ替えて一致するかなどを試したりしてきましたが、Set を使うのがベストそうでした。
複数の選択肢の組み合わせで、何か行うときの条件のチェックにも Set は有効そうです。
例えば、3 つのオプションを選択できる商品があった時、特定の組み合わせだけ特典が付くなどですね。
RDoc
ソースコードのコメントを RDoc のフォーマットで書くと変換してドキュメントを生成してくれる。
よく見かけてはいたけれども、準拠したコメントを書いていたわけでもないので確認。
1 | # == rdoc 確認のためのToolクラス |
上記のような、クラスを書いて rdoc tool.rb
を実行。./doc
以下にページが生成される。
RDoc の形式でコメント書くようにしていった方いいのだろうなぁ。
Rake
Rake
を改めて学んでみると、使っていない機能が非常に多いことに驚きました。
基本
以下のように rakefile.rb
を作成。
1 | desc 'テスト用タスク1' |
以下のように実行する。
1 | # タスクの一覧 |
ここまでの機能は、認識はあったけれどもここからが本番。
依存関係
タスクは事前に行うものがあるなど、依存関係を定義できました。
1 | desc 'テスト用事前実行タスク1' |
1 | $ rake -T |
事前に実行してほしいタスクを定義できました。
並列実行タスク
multitask
を使うと、並列にタスクを実行してくれます。
1 | desc 'テスト用並列実行タスク1' |
実行すると以下のようになります。
1 | $ rake test_task_2 |
並列実行ができました。
ファイルタスク
1 | # 読み込み対象ファイル指定 |
実行すると、次のようになります。
1 | # 1回目 |
file
で設定したファイルが無ければ定義したタスクが呼ばれ、あればスキップします。
クリーンタスク
処理の途上で作成した最終的に不要なファイルなどを削除したいといった、掃除用のタスクです。
1 | require 'rake/clean' |
require 'rake/clean'
を記述すると次のようになります。
1 | # rake clean clobberというタスクが増えている |
ディレクトリタスク
1 | DIST_DIR = 'dist' |
実行すると次のようになります。
1 | $ rake -T |
ルール
主にファイルの記述を動的に定義できます。
1 | FILE_NAME = 'src.txt' |
1 | # タスク一覧にはruleで定義したものは出てこない |
namespace
こちらはよく見かけるnamespace
。
1 | namespace :test_tasks do |
タスク一覧を確認すると次のようになります。
1 | # namespace使用前 |
タスクのグループ化がされるようになります。
rake タスクを Rails の開発中に使うことは、比較的多くありますが、知らなかったことが多数ありました。
やはり標準機能・ライブラリを確認していくのは大事ですね。
ではでは。