after investigating why the reloader wasnt working , i discovered 2 probs, one 
of which was sorta my fault (but will likely happen to others who make one-file 
apps)

first, my app was like this:

#!/usr/bn/env ruby

%w{applib1 applib2 digest/md80 airbus}.each{|r| require r}}

if __FILE__ == $0
  Mongrel.config do
     handler '/', Camping.reloader.new(__FILE__)
  end
end


not exactly sure how it wraps the run request, since it mainly returns a 
constant name. but even so, the files are already required. maybe reloader 
should record the current $LOADED_FEATURES as soon as its loaded so even stuff 
later in the require line gets recorded.. im not sure where camping draws the 
line for 'too magic', but i think its somewhere like ' i havent seen a blaze 
mark on a tree in a few miles, but theres sort of a path here, maybe made by 
native chipmunks, so im going to follow it...'

even as i reworked the app structure on disk, to have a front layer that just 
does the launching (defeating the single file thing) it still wasnt loading. 

, its matching /^file.basename(scriptname)/,. so unless you have appname.rb 
then appname/ for further stuff (which doesnt contain your entire app in a 
dir), it breaks. one solution would be to expand the path of the requires, then 
compare File.dirname.. 


anyone have any preferences on whether the former or the latter technique is a 
less world-changing solution? would either one break/fix RV / TentSteak / 
CampingServer?

_______________________________________________
Camping-list mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/camping-list

Reply via email to