lib/gumdrop/server.rb in gumdrop-0.2.16 vs lib/gumdrop/server.rb in gumdrop-0.3
- old
+ new
@@ -1,41 +1,57 @@
# Rework this to be nicer.. Extend Sintra::Base
require 'sinatra/base'
+require 'logger'
+
module Gumdrop
class Server < Sinatra::Base
set :port, Gumdrop.config.port if Gumdrop.config.port
+
+
+ server_log= 'logs/server.log'
# get '/' do
# redirect '/index.html'
# end
- Gumdrop.run :dry_run=>true
+ Gumdrop.run dry_run:true, log:server_log
get '/*' do
file_path= get_content_path params[:splat].join('/')
- if Gumdrop.config.force_reload
- unless %w(.jpg .jpe .jpeg .gif .ico .png).include? File.extname(file_path).to_s
- Gumdrop.run :dry_run=>true
- end
- end
+ Gumdrop.log.info "[#{$$}] GET /#{params[:splat].join('/')}"
+ #Gumdrop.log.debug " last built: #{Gumdrop.last_run}"
+
if Gumdrop.site.has_key? file_path
content= Gumdrop.site[file_path]
if content.useLayout?
+ # Only do a force_reload if the resource is dynamic!
+ if Gumdrop.config.force_reload
+ unless %w(.jpg .jpe .jpeg .gif .ico .png).include? File.extname(file_path).to_s
+ since_last_build= Time.now.to_i - Gumdrop.last_run.to_i
+ if since_last_build > 2
+ Gumdrop.log.debug "[#{$$}] !!> REBUILDING"
+ Gumdrop.run dry_run:true, log:server_log
+ end
+ end
+ end
+ Gumdrop.log.info "[#{$$}] *Dynamic: #{file_path}"
content_type :css if content.ext == '.css' # Meh?
content_type :js if content.ext == '.js' # Meh?
content_type :xml if content.ext == '.xml' # Meh?
content.render
else
+ Gumdrop.log.info "[#{$$}] *Static: #{file_path}"
send_file "source/#{file_path}"
end
else
+ Gumdrop.log.error "[#{$$}] *Missing: #{file_path}"
puts "NOT FOUND: #{file_path}"
"#{file_path} Not Found"
end
end
@@ -52,20 +68,20 @@
keys.detect {|k| Gumdrop.site.has_key?(k) }
end
end
if Gumdrop.config.auto_run
- Gumdrop.run :dry_run=>true
+ Gumdrop.run dry_run:true
run!
end
def self.start(opts={})
# Options
- opts.reverse_merge! :auto_run => true, :cache_data => false
+ opts.reverse_merge! auto_run:true, cache_data:false
Gumdrop.config.merge! opts
- Gumdrop.run :dry_run=>true
+ Gumdrop.run dry_run:true, log:server_log
::Gumdrop::Server
end
end
-end
\ No newline at end of file
+end