2011-07-14 3 views
1

UPDATEをロードしません。したがって、私が 'eventmachine'を要求したとき、EventMachineの定義を含まない同じファイルをインポートしたばかりです。ルビー: <p></p>は、私は簡単な答えを発見し、それは完全に私自身のせいです:私は「eventmachine.rb」というファイルに上記のコードを格納しEventMachineが

これは実際にEventMachineに関する投稿ではありません。

オリジナルのポスト:

は、恐れ入りますが、何が起こっているのか?私は "ルビーmyfile.rb" を実行すると

require 'rubygems' 
require 'eventmachine' 

EventMachine 

は、両方のTextMateで、コンソールに

uninitialized constant EventMachine 

を与えます。

しかし、私はIRBに同じものを入力した場合、私は

=> EventMachine 

を取得します。私のRubyとRubygemsの環境を一掃し、MacPortsのからそれらを再インストールする -

...

は私がhttp://blog.carlmercier.com/2007/12/14/how-to-fix-that-rubygems-mess-on-leopard/に発疹指示に従ったことをとてもイライラしました。 IRBは引き続き動作し、TextMate /コマンドラインは同じ方法で失敗します。私はTextMate PATHをRuby、Gem、IRBがインストールされている場所(/ opt/local/bin)に減らしました。 IRB、TextMateの、またはコンソールのいずれかに

最後に、ときに私

puts Gem.path 

、私は同じパスを取得します。

+0

トピックオフ:Macでルビーを管理するには、rvmを使用することを強くお勧めします。 https://rvm.beginrescueend.com/。あなたが見た投稿は2007年です。それ以来、ルビー用のツールが銀河を囲んでいます。 – Thilo

答えて

4

私は単純な答えを見つけました。それは完全に私自身の誤りです。 "eventmachine.rb"というファイルに上記のコードを保存しました。したがって、私が 'eventmachine'を要求したとき、EventMachineの定義を含まない同じファイルをインポートしたばかりです。

1

宝石をインストールしましたか?

gem install eventmachine 

ライン

require 'eventmachine' 

が失敗し、そのクラス/モジュールの定数、EventMachine、定義されていないので、通常、あなたが表示され、コード内のそのような誤差があります。あなたはルビー1.9を実行している場合

また、あなたは、もはやメッセージは「初期化されていない定数」である理由私は理解していない

require 'rubygems' 
+0

私は宝石をインストールしました。申し訳ありませんが、私は理解していないが、私はいつでもあなたが存在しないファイルを必要と思った "あなたはそのようなファイルを読み込む"を取得します。その点では宝石は大丈夫です。 – themirror

+0

ああ。あなたは正しいです。これらの行をirbに入力しようとしましたか?各行はどうなるの?同じ結果ですか? 'eventmachine'がtrueを返す必要がありますか? – rnicholson

+0

実際にはIRBではtrueを返し、EventMachineは機能します。 TextMateで説明されているように失敗し、コマンドラインで "ruby mycode.rb"を実行して失敗します。 – themirror

0

を持っている必要がありませんが、問題は、あなたが実行するためには何もありませんということです。私はあなたのコードと同じエラーを取得しますが、私はそれを変更した場合:

EventMachine::run{ 
    EventMachine::add_periodic_timer(0.1) { 
    print '.' 
    } 
} 

それは私が期待どおりに動作します - それは、毎秒10ドットを印刷します。

+0

hmこれは私に同じUninitializedConstantエラーを与えます。私がrnichosonへの私のコメントで言ったように、私はTextMateでこのエラーを受け取り、コマンドラインからRubyを実行していますが、IRBではrequire 'eventmachine'と言うことができます。 EM; #gives "EventMachine"。 – themirror

+0

興味深い事実:IRB、TextMate、またはコンソールに「Gem.path」を置くと、同じパスが得られます。 – themirror

関連する問題

 関連する問題