Permalink
Browse files

switch to puma, make app reload in development mode

  • Loading branch information...
1 parent 03595db commit d4404b201cfee36b19bca2b4806b2bf9c8d648eb @rkh rkh committed Oct 17, 2012
Showing with 1,626 additions and 1,635 deletions.
  1. +1 −1 Gemfile
  2. +3 −7 Gemfile.lock
  3. +1 −1 Procfile
  4. +0 −4 config/unicorn.rb
  5. +16 −9 lib/travis/web/app.rb
  6. +1,604 −1,604 public/styles/app.css
  7. +1 −1 public/version
  8. +0 −8 script/server
View
@@ -2,7 +2,7 @@ ruby '1.9.3' rescue nil
source :rubygems
-gem 'unicorn'
+gem 'puma'
gem 'rack-ssl', '~> 1.3'
gem 'rack-cache'
View
@@ -43,15 +43,15 @@ GEM
guard (1.4.0)
listen (>= 0.4.2)
thor (>= 0.14.6)
- kgio (2.7.4)
listen (0.5.3)
multi_json (1.3.6)
+ puma (1.6.3)
+ rack (~> 1.2)
rack (1.4.1)
rack-cache (1.2)
rack (>= 0.4)
rack-ssl (1.3.2)
rack
- raindrops (0.10.0)
rake (0.9.2.2)
rb-fsevent (0.9.2)
rerun (0.7.1)
@@ -62,10 +62,6 @@ GEM
uglifier (1.3.0)
execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2)
- unicorn (4.4.0)
- kgio (~> 2.6)
- rack
- raindrops (~> 0.7)
PLATFORMS
ruby
@@ -76,6 +72,7 @@ DEPENDENCIES
debugger
foreman
guard
+ puma
rack-cache
rack-ssl (~> 1.3)
rake (~> 0.9.2)
@@ -85,4 +82,3 @@ DEPENDENCIES
rerun
tilt
uglifier
- unicorn
View
@@ -1,3 +1,3 @@
-web: script/server
+web: bundle exec rackup -s puma -p $PORT
assets: rerun -x -p 'assets/**/*' 'bundle exec rakep'
#specs: rerun -x -p 'public/**/*' './run_jasmine.coffee public/spec.html'
View
@@ -1,4 +0,0 @@
-# http://michaelvanrooijen.com/articles/2011/06/01-more-concurrency-on-a-single-heroku-dyno-with-the-new-celadon-cedar-stack/
-
-worker_processes 3 # amount of unicorn workers to spin up
-timeout 30 # restarts workers that hang for 15 seconds
View
@@ -17,6 +17,11 @@ def call(env)
end
end
+ def self.new(options = {})
+ return super unless options[:environment] == 'development'
+ proc { |e| super.call(e) } # poor man's reloader
+ end
+
attr_reader :app, :router, :environment, :version, :last_modified, :age, :options, :root
def initialize(options = {})
@@ -62,29 +67,29 @@ def response_for(file)
end
def each_file
- Dir.chdir(root) do
- Dir.glob('**/*') { |f| yield f if File.file? f }
- end
+ pattern = File.join(root, '**/*')
+ Dir.glob(pattern) { |f| yield f if File.file? f }
end
def prefix?(file)
file =~ /^(styles|scripts)\//
end
def index?(file)
- file == "index.html"
+ file.end_with? 'index.html'
end
def route_for(file)
+ file = file.sub("#{root}/", '')
file = File.join(version, file) if prefix? file
file = "" if index? file
"/#{file}"
end
def cache_control(file)
- case file
- when 'index.html' then "public, must-revalidate"
- when 'version' then "no-cache"
+ case route_for(file)
+ when '/' then "public, must-revalidate"
+ when 'version' then "no-cache"
else "public, max-age=#{age}"
end
end
@@ -105,8 +110,10 @@ def set_config(string)
def builder
builder = Rack::Builder.new
- builder.use Rack::SSL if environment == 'production'
- builder.use Rack::Cache
+ if environment == 'production'
+ builder.use Rack::SSL
+ builder.use Rack::Cache
+ end
builder.use Rack::Deflater
builder.use Rack::Head
builder.use Rack::ConditionalGet
Oops, something went wrong.

0 comments on commit d4404b2

Please sign in to comment.