RailsでCoffeeScriptを分割して書くためのgem「guard-coffeedripper」を作りました。

coffeescriptをクラスごととかに分割して書きたかったので作りました。
guard-coffeedripperというgemです。
githubに上げてます。
GitHub - amacou/guard-coffeedripper: coffeescript marger

あと名前からもわかるとおりguardのプラグイン?として動きます。
guardのgithubは以下
https://github.com/guard/guard

使いかた

Gemfileに以下を追加(Mac以外の場合は)

group :development, :test do
  gem 'rb-fsevent' #Macの場合
  gem 'growl' #Macの場合
  gem 'guard-coffeedripper'
end

でbundle installとguard init

bundle install
bundle exec guard init coffeedripper

以上でGuardfileとconfig/coffee-dripper.yamlが追加されるはず。

設定

rails3.0とbaristaの組み合わせの場合はこんなGuardfileを書くとapp/coffeescripts/*.beanを修正/保存したら勝手にcoffeescriptにマージします。

guard 'coffeedripper', :output => 'app/coffscripts/'  do
  watch(%r{^app/coffeescripts/(.+)\.bean$}) {|m| "#{m[1]}.bean"}
end

Rails3.1の場合はこんなんでいけるとおもう。(試してないので動かなかったらpullrequestください)

guard 'coffeedripper', :output => 'app/assets/javascripts/', :input =>  'app/assets/javascripts/' do
  watch(%r{^app/assets/javascripts/(.+)\.bean$}) {|m| "#{m[1]}.bean"}
end

あと、どういう組み合わせでcoffeescriptをつくるかをconfig/coffee-dripper.yamlに書きます。
例えばapp.coffeeというファイルをhoge.bean,huga.bean(*.beanファイルの中身はcoffeescriptファイル)で作る場合は以下のようになります。

# config/coffee-dripper.yaml
app.coffee:
  - hoge.bean
  - huga.bean

複数のcoffeescriptを作る場合は以下のようになります

# config/coffee-dripper.yaml
app.coffee:
  - hoge.bean
  - huga.bean
app2.coffee:
  - hoge.bean
  - piyo.bean

実行

あとはGuardを実行

bundle exec guard

でGuardfileの:outputで指定したディレクトリにcoffeeファイルが出力されます。