rcmdnk's blog
Last update

パーフェクトRuby (PERFECT SERIES 6)

Octopressのgenerate_onlyをモット便利に への追加。

ファイルを与えないでコマンドを実行した時に、 最後に更新したファイルを自動的に選択してテストするようにしました。

Rakefileをアップデート

以前

Octopressのgenerate_onlyをモット便利に

で書いた物は引数なしでrake gen_onlyとすると、ファイル名を聞いて来るようになってましたが、 大概見たいのは最後に編集したファイルなので、引数を与えない時は 最後のファイルを見るように変更しました。

Rakefile
1
2
3
4
5
6
7
8
9
10
11
@@ -81,8 +81,9 @@ task :generate_only, :filename do |t, args|
   if args.filename
     filename = args.filename
   else
-    filename = get_stdin("Enter a post file name: ")
+    filename = Dir.glob("#{source_dir}/#{posts_dir}/*.#{new_post_ext}").sort_by{|f| File.mtime(f)}.last
   end
+  puts "## Test build for #{filename}"
   puts "## Stashing other posts"
   Rake::Task[:isolate].invoke(filename)
   puts "## Generating Site with Jekyll"

こんな感じで。

追記: 2014/12/07

コメントで指摘して頂いたとおり、 reverse[0]となっていた部分をlastに変更しました。

追記ここまで

他にもgen_onlyと短縮コマンドにしてるところやpreview_only 等のところも同じようにfilenameのところを変更すればOK。

これで

$ rake gen_only

とするだけで一番最後に編集したもの(ただし_posts/直下のみ) だけをコンパイルして見る事が出来ます1

Sponsored Links
  1. 自分の環境ではコマンドをさらに短縮してgoにしてrake goで出来るようにしてます。 goだとちょっと紛らわしい気がしないでもないですが。。。

Sponsored Links

« Facebookのボタンを「いいね!」から「シェア」に Octopressで外部リンクを別ウィンドウで開く様にする »

}