default/lib/NAME.rb.bns in bones-3.2.1 vs default/lib/NAME.rb.bns in bones-3.3.0

- old
+ new

@@ -15,19 +15,37 @@ # Returns the library path for the module. If any arguments are given, # they will be joined to the end of the libray path using # <tt>File.join</tt>. # - def self.libpath( *args ) - args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten) + def self.libpath( *args, &block ) + rv = args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten) + if block + begin + $LOAD_PATH.unshift LIBPATH + rv = block.call + ensure + $LOAD_PATH.shift + end + end + return rv end # Returns the lpath for the module. If any arguments are given, # they will be joined to the end of the path using # <tt>File.join</tt>. # - def self.path( *args ) - args.empty? ? PATH : ::File.join(PATH, args.flatten) + def self.path( *args, &block ) + rv = args.empty? ? PATH : ::File.join(PATH, args.flatten) + if block + begin + $LOAD_PATH.unshift PATH + rv = block.call + ensure + $LOAD_PATH.shift + end + end + return rv end # Utility method used to require all files ending in .rb that lie in the # directory below this file that has the same name as the filename passed # in. Optionally, a specific _directory_ name can be passed in such that