From 8ed674f0f33b6194d5b15be6455f8e53f3f6efab Mon Sep 17 00:00:00 2001 From: Chad Woolley Date: Sat, 17 Mar 2012 19:46:54 -0700 Subject: [PATCH] Compatibility with Rack version ~>1.0 --- jasmine.gemspec | 2 +- lib/jasmine/config.rb | 11 ++++++++--- lib/jasmine/server.rb | 4 +++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/jasmine.gemspec b/jasmine.gemspec index c2f76263..c489fba3 100644 --- a/jasmine.gemspec +++ b/jasmine.gemspec @@ -59,7 +59,7 @@ Gem::Specification.new do |s| s.add_development_dependency 'json_pure' s.add_dependency 'jasmine-core', ">= 1.2.0.rc1" - s.add_dependency 'rack', '>= 1.1' + s.add_dependency 'rack', '~> 1.0' s.add_dependency 'rspec', '>= 1.3.1' s.add_dependency 'selenium-webdriver', '>= 0.1.3' end diff --git a/lib/jasmine/config.rb b/lib/jasmine/config.rb index 490ce624..5c79afd7 100644 --- a/lib/jasmine/config.rb +++ b/lib/jasmine/config.rb @@ -16,9 +16,14 @@ def jasmine_port end def start_server(port = 8888) - server = Rack::Server.new(:Port => port, :AccessLog => []) - server.instance_variable_set(:@app, Jasmine.app(self)) # workaround for Rack bug, when Rack > 1.2.1 is released Rack::Server.start(:app => Jasmine.app(self)) will work - server.start + if defined? Rack::Server # Rack ~>1.0 compatibility + server = Rack::Server.new(:Port => port, :AccessLog => []) + server.instance_variable_set(:@app, Jasmine.app(self)) # workaround for Rack bug, when Rack > 1.2.1 is released Rack::Server.start(:app => Jasmine.app(self)) will work + server.start + else + handler = Rack::Handler.get('mongrel') + handler.run(Jasmine.app(self), :Port => port, :AccessLog => []) + end end def start diff --git a/lib/jasmine/server.rb b/lib/jasmine/server.rb index 7229409a..e689ef8a 100644 --- a/lib/jasmine/server.rb +++ b/lib/jasmine/server.rb @@ -74,7 +74,9 @@ def call(env) def self.app(config) Rack::Builder.app do use Rack::Head - use Rack::ETag, "max-age=0, private, must-revalidate" + if defined? Rack::ETag # Rack ~>1.0 compatibility + use Rack::ETag, "max-age=0, private, must-revalidate" + end if Jasmine::Dependencies.rails_3_asset_pipeline? map('/assets') do run Rails.application.assets