rubyexecutablerequireocra

Making an executable from ruby files using Ocra, LoadError?


I'm trying to make an executable from a couple ruby files on Windows, so I installed Ocra. I thought I understood the process of how Ocra works, but can't seem to get the executable working correctly. The problem I am having arises with "requiring" other ruby files.

The ruby program by itself compiles correctly and functions how I want it to, and Ocra seems to create a working executable, however, when I attempt to run the executable, I get the following error:

*/custom_require.rb:36:in 'require': cannot load such file -- MainMenuDialog.rb (LoadError)*

My main program is called 'JobManager.rb' and it is creating a new MainMenuDialog object, therefore I include MainMenuDialog.rb in the top of the file as such:

$: << File.expand_path(File.dirname(__FILE__) + "/../lib")
# Other requires here
require("MainMenuDialog.rb")

Again, the program compiles and runs perfectly fine by itself (including the require statements), and when I run the command ocra JobManager.rb it successfully runs the programs, checks for dependencies, and creates the executable. I just can't run the executable because of the "LoadError" described above.

Any thoughts on what I'm doing wrong? Thanks in advance!!!


Solution

  • With ruby >= 1.9 you may try require_relative.

    Explanation: ocra stores all files in its own subdirectories.

    If you manipulate the load pathes ($:) you can't be sure, what ocra uses during execution.