- 282 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 10:44:17 ]
- あと、kagemai/lib/kagemai/util.rb の
def Util.erb_eval_file(filename, binding = TOPLEVEL_BINDING) src = open(filename, 'rb') {|file| ERB.new(file.read.gsub(/¥r¥n/, "¥n")).src} eval(src.untaint, binding, filename) end となっているところを ERUBY_CACHE = {} # filename => src def Util.erb_eval_file(filename, binding = TOPLEVEL_BINDING) cachename = filename + '.cache' if !defined?(MOD_RUBY) && ERUBY_CACHE.key?(filename) src = ERUBY_CACHE[filename] elsif test(?f, cachename) && File.mtime(cachename) >= File.mtime(filename) src = File.open(cachename, 'rb') {|file| file.read } ERUBY_CACHE[filename] = src else src = open(filename, 'rb') {|file| ERB.new(file.read.gsub(/¥r¥n/, "¥n")).src} File.open(cachename, 'wb') {|file| file.flock(File::LOCK_EX); file.write(src) } ERUBY_CACHE[filename] = src end eval(src.untaint, binding, filename) end にかえたら速くなるかもしれない。 ただし *.rhtml が格納されているディレクトリのパーミッションに注意すること。
|

|