ranguba / packnga

A utility library to package i18n-ed library.
http://ranguba.org/#about-packnga
5 stars 2 forks source link

ruby 1.8.7で開発版packngaのrakeタスクを読み込めない #6

Closed tetradice closed 12 years ago

tetradice commented 12 years ago

ruby 1.8.7でpackngaのrakeタスクを実行しようとしたところ syntax errorで落ちる(rakeタスクを読み込めない)問題が発生しました。 Rakeタスク内で、ruby 1.9以降で導入された構文を使っているのが原因のようです。 (2つ以上の配列展開は、ruby 1.9以降で導入された機能です)

参考:http://gihyo.jp/dev/serial/01/ruby/0003?page=2

環境

Windows 7 64ビット Ruby 1.8.7 mingw (RubyInstaller版) githubから取得した開発版のpacknga

rake実行結果

$ bundle exec rake -T -t
rake aborted!
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga/reference-task.rb:114: syntax error, unexpected ',', expecting ']'
...e => [@po_dir, *@source_files, *@extra_files] do |t|
                              ^
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga/reference-task.rb:126: syntax error, unexpected kDO_BLOCK, expecting kEND
          @translate_languages.each do |language|
                                      ^
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga/reference-task.rb:130: syntax error, unexpected ',', expecting ']'
              file po_file => [*@source_files, *@extra_files] do |t|
                                              ^
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga/reference-task.rb:137: syntax error, unexpected kELSE, expecting kEND
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga/reference-task.rb:154: syntax error, unexpected kDO_BLOCK, expecting kEND
          @translate_languages.each do |language|
                                      ^
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga/reference-task.rb:158: syntax error, unexpected kEND, expecting $end
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga/document-task.rb:21:in `require'
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga/document-task.rb:21
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga.rb:21:in `require'
C:/work/wpm/gems/ruby/1.8/bundler/gems/packnga-34c5bde50932/lib/packnga.rb:21
C:/work/wpm/Rakefile.rb:11:in `require'
C:/work/wpm/Rakefile.rb:11
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `load_rakefile'
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `run'
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
C:/work/wpm/gems/ruby/1.8/gems/rake-0.9.2.2/bin/rake:33
C:/work/wpm/gems/ruby/1.8/bin/rake:23:in `load'
C:/work/wpm/gems/ruby/1.8/bin/rake:23

Gemfile.lock

GIT
  remote: git://github.com/lsegal/yard.git
  revision: cdaababa5da0b24a868abf95d9e28613210d09ad
  specs:
    yard (0.8.2.1)

GIT
  remote: git://github.com/ranguba/packnga.git
  revision: 34c5bde50932dd272deb4b852552b3705e19b86f
  specs:
    packnga (0.9.5)
      gettext
      rake
      rubyforge
      yard

GEM
  remote: http://rubygems.org/
  specs:
    gettext (2.2.1)
      locale
    git (1.2.5)
    jeweler (1.8.4)
      bundler (~> 1.0)
      git (>= 1.2.5)
      rake
      rdoc
    json (1.7.3)
    json_pure (1.7.3)
    locale (2.0.5)
    rake (0.9.2.2)
    rdoc (3.12)
      json (~> 1.4)
    rubyforge (2.0.4)
      json_pure (>= 1.1.7)
    wxruby (2.0.1-x86-mingw32)

PLATFORMS
  x86-mingw32

DEPENDENCIES
  jeweler
  packnga!
  rake
  wxruby
  yard!
yoshihara commented 12 years ago

ご報告ありがとうございます。 こちらの確認が足りず申し訳ありませんでした。 問題が発生しないようにするために、ruby1.9以降で導入された機能を使わないようにpackngaの修正を行いました。 その後、次のコマンドを実行して、ruby1.8.7でも問題が発生せず正しく動作することを確認しました。

bundle exec rake -T -t

この開発版のpackngaを利用してrakeタスクを実行するには、 Gemfileを置いたディレクトリで下記のコマンドを実行してください。

% bundle update

このコマンドを実行すると、bundlerでインストールしていただいた開発版のpackngaを 最新のものに更新します。 その後、

% bundle exec rake -T

のように、bundle execコマンドを使うことで、 修正されたpackngaを利用してrakeタスクを実行できます。

tetradice commented 12 years ago

迅速な修正ありがとうございました。 ruby 1.8.7で正しく動作していることを確認できました。 課題をクローズいたします。