4

FakeFSを使用しようとしていますが、次の場合に初期化されていない定数エラーが発生し続けますrequire 'fakefs'

C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:26:in `<class:File>': uninitialized constant File::NOCTTY (NameError)

私はもともとRubyMineで作業していましたが、問題を特定するために、単純なhello worldスクリプトを作成し、コマンドラインから実行しても同じエラーが発生します。そのスクリプトは次のとおりです。

require 'rubygems'
gem 'fakefs'
require 'fakefs'

puts "Hello Cleveland!"

そして、ここにエラーとそれに伴うスタックトレースがあります:

>ruby foo.rb
C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:26:in `<class:File>': uninitialized constant File::NOCTTY (NameError)
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:4:in `<module:FakeFS>'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:3:in `<top (required)>'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/safe.rb:9:in `<top (required)>'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs.rb:1:in `<top (required)>'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from foo.rb:3:in `<main>'

RubyMineを介してfakefsgemをインストールしました。私はRuby1.9を搭載したWindowsで作業しています。何か案は?

4

1 に答える 1

3

NOCTTYこれは、WindowsにSYNCフラグがないためです。このメソッドをbase.rbファイルに追加できます。

def RealFile.const_missing const
  const_set const, 42
end

本当に、それが問題を引き起こすかどうかはわかりませんが、少なくともスクリプトを実行することはできます。そして、私はあなたがgithubでこれについて書くべきだと思います

いくつかのウィンドウが修正されたフォークがあります(この男はすべてのフラグにコメントしました):https ://github.com/vertiginous/fakefs

于 2011-04-17T19:58:24.633 に答える