[wxruby-users] wxRuby & RubyScript2exe

Matthew Webb bmatthew1 at blueyonder.co.uk
Fri Mar 28 21:18:34 EDT 2008


Jay McGavren wrote:
> 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
>
>   
>> 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
>>
>> 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
> _______________________________________________
> wxruby-users mailing list
> wxruby-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/wxruby-users
>
>
>
>   
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/wxruby-users/attachments/20080329/597e2409/attachment.html 


More information about the wxruby-users mailing list