Re: wxRuby & RubyScript2exe

Matthew Webb wrote:

Bitmap file does not exist:
C:\Users\Matthew\eee\eee.controls.exe.4\app/icons/list.xpm
(ArgumentError)

Do you have any ideas how I could solve this problem?

The problem is that this script depends on an external file, which
rubyscript2exe doesn’t include in the .exe (and therefore not in the
eee temp folder). You’ll need to employ a little cleverness to
include the resource with the executable.

This page talks about including library files for another GUI
framework in the .exe, and should be adaptable for including resource
files:

http://ruby-gnome2.sourceforge.jp/hiki.cgi?tips_rubyscript2exe

Those lines copy all the files & folders inside the
“run_dep” folder to the folder where rubyscript2exe will
extract your application. The begin/rescue is needed
because that fails when you run your application the first
time in rubyscript2exe, to create the .exe.

You’ll of course need to modify the path referenced in the script such
that it points to the temp location that the resource gets
decompressed to.

BTW, overall wxRuby works beautifully with rubyscript2exe, which is
one of my favorite features about it.

-Jay McGavren

Jay McGavren wrote:

rubyscript2exe doesn’t include in the .exe (and therefore not in the

require ‘rubyscript2exe’
Those lines copy all the files & folders inside the
BTW, overall wxRuby works beautifully with rubyscript2exe, which is

Thanks for the advice, I placed the following code at the start of the
program…

require ‘rubyscript2exe’
require ‘fileutils’
require ‘pathname’

p0 = Pathname.new(RUBYSCRIPT2EXE.appdir)
root_runtime = p0.parent.to_s
begin
FileUtils.cp_r(‘run_dep/.’, root_runtime)
rescue
end

I changed this line from…

icon_file = File.join( File.dirname(FILE), “mondrian.png”)

to…

icon_file = File.join( File.dirname(RUBYSCRIPT2EXE.appdir),
“mondrian.png”)

Then I created a folder called ‘run_dep’ where the script was located &
I placed the icons in that folder.

The script was “compiled” with ‘rubyscript2exe minimal.rb
–rubyscript2exe-rubyw’

When I executed it the icons loaded & the program worked.