« [Soft] Ubuntu 10.04 に VirtualBox 4.1.4 をインストールした | トップページ | [本] 特撮ラブコメの王道を突き進むSF小説を一気読みした »

2011年10月 9日 (日)

[Ruby] Rails 3.1.1 で CoffeeScript から変換される JavaScript の結果を知りたくていろいろやってみた

Rails 3.1.1(3.1.0) では、CoffeeScript が使える。 ふと、CoffeeScript のファイルを編集中に、そのスクリプトがどんな JavaScript に変換されるのか知りたくなった。

Vim 使いの私は、てっとり早く vim-coffee-scriptCoffeeScript をインストールして、vim で

:CoffeeCompile

として確認してしまった。

でも、Rails 3.1.1(3.1.0) は、CoffeeScript 本体(というか coffee コマンド)を使ってコンパイルしてないんだよな。 そこで、Rails 3.1.1 を調べてみたところ、Ruby CoffeeScript というのが見つかった。これを使えばコンパイルできるみたいだ。

コンパイルだけする mycoffee を作って確認してみた。mycoffee コマンドは3行だけ。

$ cat mycoffee
#!/usr/local/bin/ruby
require 'coffee-script'
print CoffeeScript.compile File.read(ARGV.shift)

今回コンパイルしてみるCoffeeScriptの中身はこんなの。

$ cat depot/app/assets/javascripts/carts.js.coffee
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
#
$ ->
  if $('#cart tr').not('.total_line').length is 0
      $('#cart').css('display', 'none')

では、実行してみる。

$ ./mycoffee depot/app/assets/javascripts/carts.js.coffee
(function() {
  $(function() {
    if ($('#cart tr').not('.total_line').length === 0) {
      return $('#cart').css('display', 'none');
    }
  });
}).call(this);

CoffeeScript本家でもコンパイルしてみる。

$ coffee -p work/rails/depot/app/assets/javascripts/carts.js.coffee 
(function() {
 
  $(function() {
    if ($('#cart tr').not('.total_line').length === 0) {
      return $('#cart').css('display', 'none');
    }
  });
 
}).call(this);

ということで空行が入る以外は同じ。

ちなみに、Rails 3.1.1 のCoffeeScriptのバージョンは、

CoffeeScript.version 

で確認できる。 また、利用しているCoffeeScriptコンパイラのソースのパスは、

CoffeeScript::Source.path 

で確認できる。

ちなみに、CoffeeScriptコンパイラを指定したい場合は、COFFEESCRIPT_SOURCE_PATH 環境変数で CoffeeScriptコンパイラのソース(恐らくJavaScriptが前提だと思われる)のパスを指定すればいいっぽい(未確認)。

|

« [Soft] Ubuntu 10.04 に VirtualBox 4.1.4 をインストールした | トップページ | [本] 特撮ラブコメの王道を突き進むSF小説を一気読みした »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Ruby] Rails 3.1.1 で CoffeeScript から変換される JavaScript の結果を知りたくていろいろやってみた:

« [Soft] Ubuntu 10.04 に VirtualBox 4.1.4 をインストールした | トップページ | [本] 特撮ラブコメの王道を突き進むSF小説を一気読みした »