Exerbを使用して、Rubyスクリプトを実行ファイルに変換する簡単な例を紹介します。
バージョン4.0.0より、新しく追加された機能です。単一のRubyスクリプトファイルであれば、レシピファイルを作成せずに1ステップで実行ファイルに変換することができます。
実行ファイルに変換したいRubyスクリプトを準備します。 ここでは「Hello!」というメッセージを出力するhello.rbを例として用います。 内容は下記の通りです。
puts "Hello!"
Exerbで実行ファイルに変換する前に、MSVCRT32版Rubyで実行できることを確認します。 エラーが発生した場合は、エラーメッセージを参照し、Rubyスクリプトを修正してください。
$ ruby hello.rb
Hello!
動作確認は必ず行ってください。 また、可能な限り、Exerbコアに含まれるRubyインタプリタと同一バージョンのRubyを使用してください。
exerbコマンドを実行して、実行ファイルに変換します。 正常に変換できれば、何も画面に出力されずに終了します。
$ exerb hello.rb
生成された実行ファイルを実行します。 「Hello!」と表示されれば成功です。
$ hello.exe
Hello!
通常使用する実行ファイルへの変換方法です。
1ステップ生成の場合と同様に、実行ファイルに変換したいRubyスクリプトを準備します。 ここでは「Hello!」というメッセージを出力するhelloメソッドが定義されたhello_def.rbと、helloメソッドを呼び出すhello_call.rbを例として使用します。 hello_def.rbの内容は下記の通りです。
def hello()
puts "Hello!"
end
hello_call.rbの内容は下記の通りです。
require "hello_def"
hello()
Exerbで実行ファイルに変換する前に、MSVCRT32版Rubyで実行できることを確認します。 エラーが発生した場合は、エラーメッセージを参照し、Rubyスクリプトを修正してください。
$ ruby hello_call.rb
Hello!
動作確認は必ず行ってください。 また、可能な限り、Exerbコアに含まれるRubyインタプリタと同一バージョンのRubyを使用してください。
レシピファイルを準備します。 ここではシンプルなレシピファイルであるhello_call.exyを例として用います。 内容は下記の通りです。
general:
startup: hello_call.rb
file:
hello_call.rb:
hello_def.rb:
なお、レシピファイルは自動生成することもできます。 下記のいずれかを実行すると、指定されたスクリプトが実行されたあと、終了時にレシピファイルが生成されます。
$ ruby -r exerb/mkexy hello_call.rb
Hello!
$ mkexy hello_call.rb
Hello!
exerbコマンドを実行して、実行ファイルに変換します。 エラーが発生した場合は、エラーメッセージを参照し、レシピファイルを修正してください。
$ exerb hello_call.exy
生成された実行ファイルを実行します。 「Hello!」と表示されれば成功です。
$ hello_call.exe
Hello!