Here is a fix to the require() and load() methods. Its easier to patch 
it there and just not to assume those methods are being given relative 
paths.

http://github.com/dreamcat4/script/commit/e7d585b5

Joel VanderWerf wrote:
> On Sun, Jul 11, 2010 at 3:07 AM, Dreamcat Four <dreamcat4 / gmail.com> 
> wrote:
>> http://gist.github.com/471434
>>
>> I noticed that there is a redefinition of require in script.rb. Is that
>> method meant to be handling that?
>>
>> http://redshift.sourceforge.net/script/doc/classes/Script.html#M000003
> 
> Yes. The problem is in the way your script references the other files.
> You've got absolute paths (which makes sense in the no-wrapper case),
> but the Script class is expecting relative. The problem goes away
> (AFAICT) with this patch:
> 
> --- /home/vjoel/tmp/dc2/examples/scripts/script.rb  2010-07-13
> 17:13:47.673562875 -0700
> +++ -  2010-07-13 17:15:18.375246675 -0700
> @@ -1,6 +1,6 @@
>  puts "in #{__FILE__}, line #{__LINE__}"
> 
> -load File.dirname(__FILE__)+"/sub-script.rb"
> +load "sub-script.rb"
> 
>  OUTPUT = ["input was #{INPUT}"]
> 
> @@ -9,10 +9,10 @@
>    end
>  end
> 
> -require File.dirname(__FILE__)+'/lib/a-class'
> +require 'lib/a-class'
> 
> -require File.dirname(__FILE__)+'/lib/x-accessor'
> -require File.dirname(__FILE__)+'/lib/x-accessor' # only loaded once
> +require 'lib/x-accessor'
> +require 'lib/x-accessor' # only loaded once
> 
>  # Falls back to Kernel.load, since "benchmark.rb" isn't in the current 
> dir.
>  load "benchmark.rb" unless $LOADED_FEATURES.include?("benchmark.rb")

-- 
Posted via http://www.ruby-forum.com/.