RUBYLIB and shared libraries

Hi everyone,

I’m setting up my RUBYLIB variables for use with custom libraries I’ve
created. I have the following working properly:

C:/lib/wxruby/lib [this points to the custom library path I have set]

Everything is verified with ruby -e “puts $:” …

The first module I created is a module called public_instance_methods.rb

Location: C:/lib/wxruby/lib/public_instance_methods.rb

module PublicInstanceMethods

This method sets the default icon for the given window or frame

def set_icon_file(file)
icon_file = File.join(File.dirname(FILE),"…",“icons”,file)
set_icon Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_ICO)
end

end

My default working project directory is:

E:\project\lib
“” \core
“” \icons
“” \images

In E:\project\lib\core\main.rb I have…

require ‘public_instance_methods’
include PublicInstanceMethods

class GuiMain < XrcFrameMain
def initialize
super()

set_icon_file("test.ico")

end
end

Which results into an error saying:

Icon file does not exist:
C:/lib/wxruby/lib/…/icons/kirin.ico (ArgumentError)

… which means that it’s looking in the lib directory of the included
module and not the working directory of the application. How should I
set this method up so that it includes the right path to the ico file?

You can use RAILS_ROOT but I’m sure there is a better way.

Jason P. wrote:

You can use RAILS_ROOT but I’m sure there is a better way.

wha??

This isn’t a rails discussion topic and has nothing to do with rails.
Someone else?

Sorry, man.

If you want to define the root of your application you could always set
a
global variable in your main.rb or set a global variable. Whenever you
call
use FILE it is the relative path to the file that is calling it so
in
your case the shared library file.

Jason P. wrote:

Sorry, man.

If you want to define the root of your application you could always set
a
global variable in your main.rb or set a global variable.

Thanks Jason. That’s what I needed:

main.rb

$file_path = FILE

set_icon_file($file_path,"…",“icons”,“test.ico”)

… then in my custom lib directory for PublicInstanceMethods I have:

This method sets the default icon for the given window or frame

def set_icon_file(path, *file)
icon_file = File.join(File.dirname(path), file)
set_icon Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_ICO)
end

… and now everything works fine. If there is a better way of doing
this with regard to use of custom lib files, please let me know.

Thanks.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs