<< Work in progress >>
IronRubyAppPackager is a solution that allows you to ‘compile’1 your application and its libraries into a single standalone .exe file that embeds all of the application source, library and GEM files in embedded resources (compressed) within the executable.
The executable runs using IronRuby.
IronRubyAppPackager is supplied as a simple Ruby application. However it can be ‘dogfooded’. i.e. It can be run on itself and generate the executable IronRubyAppPackager.exe
, simplifying deployment. See here.
Example programs are included in this repository for guidance. In particular there is a very simple [[DRB test]] and a [[Sample Sinatra App]].
- .Net version 2 needs to be installed on any PC that runs the executable (at the moment)
- IronRuby (or you can just copy the run-time DLLs to the folder containing the executable)
- Serfs
- IREmbeddedApp
- Vendorize
- .Net version 2
- (Optional) ILMerge
Given an existing Ruby application (that runs with IronRuby), just run ir -rvendorize app.rb
.
This will copy any require
, load
or autoload
files into the folder .\_vendor_
.
You can run the program several times with different options if the required files depend on the options.
Or just run your tests…
Then run IRPackager which will generate a C# project that embeds your source files and _vendor_
files. It will build the project and deliver you a nice shiny .exe file.
- Depends on Serfs and IREmbeddedApp, which don’t support all File/IO operations on embedded resources yet. But there is enough to run many apps, and work is continuing. Feedback would be welcomed about areas that are not yet implemented.
Try
Copyright © 2010 David Lake (rifraf → rifraf.net)
Released under the MIT license. See LICENSE file for details.
1 As always, phrases that are ‘quoted’ should be interpreted as having the prefix ‘not’2. IronRubyAppPackager does not compile Ruby. It just looks like it’s compiled, and behaves like it’s compiled… Quack!
2 Recursively of course