M
Morton Goldberg
I'm using Ruby 1.8.2 on Mac OS X 10.4.7. I discovered the Ruby
distribution included a directory supporting [incr Widgets]. Some of
them seemed pretty nifty, so I thought I'd try them out. My first try
was to make an "instant" calendar with the Calendar widget. After a
bit of fooling around I got a calendar up on my screen, but one of
things I had to do to make it work bothers me.
The [incr Widgets] support files live in /usr/lib/ruby/1.8/tkextlib/
iwidgets/. There is a file, /usr/lib/ruby/1.8/tkextlib/iwidgets.rb,
that autoloads the iwidget classes. However, the iwidgets.rb is is
coded with lines like
autoload :Calendar, 'tkextlib/iwidgets/calendar'
which means iwidgets.rb has to be one directory level up (in /usr/lib/
ruby/1.8/) to work. So I put a copy of iwidgets.rb in in /usr/lib/
ruby/1.8/. With that hack, "require 'iwidgets'" works -- at least in
the short term. But what will happen if Apple installs a newer
version of Ruby as part of an OS X update? Is there a better way to
fix this sort of problem?
Regards, Morton
distribution included a directory supporting [incr Widgets]. Some of
them seemed pretty nifty, so I thought I'd try them out. My first try
was to make an "instant" calendar with the Calendar widget. After a
bit of fooling around I got a calendar up on my screen, but one of
things I had to do to make it work bothers me.
The [incr Widgets] support files live in /usr/lib/ruby/1.8/tkextlib/
iwidgets/. There is a file, /usr/lib/ruby/1.8/tkextlib/iwidgets.rb,
that autoloads the iwidget classes. However, the iwidgets.rb is is
coded with lines like
autoload :Calendar, 'tkextlib/iwidgets/calendar'
which means iwidgets.rb has to be one directory level up (in /usr/lib/
ruby/1.8/) to work. So I put a copy of iwidgets.rb in in /usr/lib/
ruby/1.8/. With that hack, "require 'iwidgets'" works -- at least in
the short term. But what will happen if Apple installs a newer
version of Ruby as part of an OS X update? Is there a better way to
fix this sort of problem?
Regards, Morton