2012-03-22 4 views
1

私の宝石にWindows .exeを含め、宝石の中からその実行ファイルを呼び出すことを考えています。 gemで実行可能ファイルをインクルードするために見たすべての提案は、実行可能ファイルを実行するプログラムを示すためにhashbangを必要とします(通常は "#!/ usr/bin/env ruby​​ ")。私は電話するプログラムは知らない。私は単に.exeを呼びたいと思う。これを行う最善の方法は何でしょうか?Ruby gem内でWindows実行ファイルを使用する

答えて

1

hashbangは宝石を実行可能にしますが、単に宝石自体の中に.exeファイルを呼び出す必要はありませんすることができます。呼び出し元のモジュールはgemのlib /にあり、.exeはbin /にあります。私は、これは、限り、あなたはlibに/ビン/ gemspecで両方をコピーするように動作

exe_path = File.expand_path(File.join(File.dirname(__FILE__), "..", "bin", "foo.exe")) 
return_value = `#{exe_path}` 

でRubyコードから.exeファイルを呼び出すことができました。

1

これらは* nixシステム用です。

あなたは終了ステータスを取得するために

%x{full path to your .exe} 

使用

$? 

を行うことができます。

http://www.ruby-doc.org/core-1.9.3/Kernel.html

+0

gem内の実行可能ファイルを相対パスで参照する方法はありますか? –

+0

何と関連していますか?作業ディレクトリに相対的に呼び出すことができます。または、それがあなたのパスにあることを確認し、それを直接呼び出すことができます。 –

+0

gemにfoo.exeを含める場合、%x {path \ to \ foo.exe}コマンドが実行される場所(作業ディレクトリ?)から格納されたgem fooまでの相対パスがあります?それとも、私はできないものですか? –

関連する問題