0

アンローラーの使用に問題があります。私は宝石をインストールし、私が抱えている問題に集中するのを助けるためにこの簡単なプログラムを書きました:

#!/usr/bin/ruby

require 'rubygems'
require 'unroller'

Unroller::trace

def foo(p1, p2)
  puts p1
  puts p2
end

foo("param1", "param2")

プログラムを実行すると、次の結果が得られます。

/Library/Ruby/Gems/1.8/gems/facets-2.9.3/lib/core/facets/filetest/separator_pattern.rb:5: warning: already initialized constant SEPARATOR_PATTERN
/Library/Ruby/Gems/1.8/gems/facets-2.9.3/lib/core/facets/string/bracket.rb:3: warning: already initialized constant BRA2KET
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require': no such file to load -- facets/methodspace (LoadError)
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
from /Library/Ruby/Gems/1.8/gems/unroller-1.0.0/lib/unroller.rb:4
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `require'
from ./ut:4

私のルビーのバージョンはルビー 1.8.7 (2011-12-28 パッチレベル 357) です。また、Windows 開発ボックスに Ruby をインストールしましたが、同じエラーが発生し、その Ruby バージョンは 1.9.3 であるため、使用している Ruby のバージョンとは関係がないようです。

誰にもアイデアはありますか?

よろしくお願いします!

ジョン

4

1 に答える 1

0

これは、 httpsunroller ://github.com/TylerRick/unroller/issues/1 で説明されている gemのバグです。自動的に最新バージョンのgem が必要になり、バージョン 2.9 はそれを壊します。(ところで、gem は依存関係をロードするときに '>=' を使用すべきではありません。そのため、'~>' が使用されます。)unrollerfacets

バンドラーを使用し、facetsgem を要求する前に特定のバージョンにハードコーディングすることで、ローカルでホットフィックスすることはそれほど難しくありません (そのため、最新の 2.9 の代わりにunroller特定のバージョンが読み込まれます)。facets

作成Gemfile:

source 'http://rubygems.org'

gem 'facets', '2.8.4' 
gem 'termios' # you're gonna need this gem too, for some reason
gem 'unroller'

実行bundle installしてから、スクリプトを bybundle exec ruby test.rbまたは requirebundler/setupで実行します。

require 'rubygems'
require 'bundler/setup'
require 'unroller'
...

更新:または、バンドラーを扱いたくない場合は、最初にこれを試してください。これも機能する可能性があります:

require 'rubygems'
gem 'facets', '2.8.4'
require 'unroller'
...
于 2012-07-09T12:21:34.157 に答える