2011-04-24

Compass 0.11.beta.7のインストール

beta版のCompassだとCSS3 PIEをサポートしているということだったので試しにbeta版をインストールしてみたんですが、 0.11.beta.7のインストール後にcompassコマンドでエラーが出るようになってしまいました(環境はWindows 7とRuby 1.9.1でした)。

gem install compass --pre
compass create test

結果

C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/lib/compass/sass_exte
nsions/functions/urls.rb:21:in `<module:Urls>': undefined method `declare' for S
ass::Script::Functions:Module (NoMethodError)
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/lib/comp
ass/sass_extensions/functions/urls.rb:1:in `<top (required)>'
        from C:/rumix/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:3
6:in `require'
        from C:/rumix/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:3
6:in `require'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/lib/comp
ass/sass_extensions/functions.rb:9:in `block in <top (required)>'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/lib/comp
ass/sass_extensions/functions.rb:5:in `each'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/lib/comp
ass/sass_extensions/functions.rb:5:in `<top (required)>'
        from C:/rumix/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:3
6:in `require'
        from C:/rumix/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:3
6:in `require'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/lib/comp
ass/sass_extensions.rb:4:in `<top (required)>'
        from C:/rumix/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:3
6:in `require'
        from C:/rumix/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:3
6:in `require'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/lib/comp
ass.rb:5:in `block in <top (required)>'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/lib/comp
ass.rb:4:in `each'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/lib/comp
ass.rb:4:in `<top (required)>'
        from C:/rumix/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:3
6:in `require'
        from C:/rumix/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:3
6:in `require'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/bin/comp
ass:20:in `block in <top (required)>'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/bin/comp
ass:8:in `fallback_load_path'
        from C:/rumix/ruby/lib/ruby/gems/1.9.1/gems/compass-0.11.beta.7/bin/comp
ass:19:in `<top (required)>'
        from C:/rumix/ruby/bin/compass:19:in `load'
        from C:/rumix/ruby/bin/compass:19:in `<main>'

試しに「Sass::Script::Functions compass」で調べると https://github.com/chriseppstein/compass/issues/310 に同じ症状になった方がいたみたいで、「haml-3.1.0.alpha.147を入れたら動いた」ような(? 原文はIt installed haml-3.1.0.alpha.147, and now the install at least runs ok.で、Railsのアプリケーションを生成しようとしたときにエラーになっていたみたいです)コメントがありました。

手元の環境ではSassのサイトにあるとおりにgem install haml していただけで安定版の3.0.25しか入っていなかったので、gem install haml --pre して3.1.0.alpha.147をインストールしてからcompassコマンドを使ったところエラーがなくなりました。

gem install haml --pre
compass create test
cd test

この状態だと compass install compass/pie でCSS3 PIEのインストールも問題なくできます。