Ruby Forum wxRuby > Re: wxRuby & RubyScript2exe

Posted by Jay McGavren (Guest)
on 28.03.2008 20:28
(Received via mailing list)
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
Posted by Matthew Webb (Guest)
on 29.03.2008 02:19
(Received via mailing list)
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.