3 engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'
5 path = "tmp/isolate/#{engine}-#{RUBY_VERSION}"
8 # we want "ruby-1.8.7" and not "ruby-1.8", so disable multiruby
14 $stdout.reopen($stderr)
16 lock = File.open(__FILE__, "rb")
17 lock.flock(File::LOCK_EX)
22 gem 'raindrops', '0.13.0'
23 gem 'unicorn', '5.0.1'
26 gem 'sendfile', '1.2.2'
27 gem 'eventmachine', '1.0.8'
28 gem 'async_sinatra', '1.2.0'
29 if RUBY_VERSION.to_f < 2.2
30 gem 'cool.io', '1.1.0'
31 gem 'neverblock', '0.1.6.2'
35 if defined?(::Fiber) && engine == "ruby"
36 if RUBY_VERSION.to_f < 2.2
37 gem 'revactor', '0.1.5'
38 gem 'rack-fiber_pool', '0.9.2' # depends on EM
42 if RUBY_PLATFORM =~ /linux/
43 gem 'sleepy_penguin', '3.4.1'
45 # is 2.6.32 new enough?
46 gem 'io_splice', '4.4.0' if `uname -r`.strip > '2.6.32'
50 $stdout.reopen(old_out)
52 # don't load the old Rev if it exists, Cool.io 1.0.0 is compatible with it,
53 # even for everything Revactor uses.
54 dirs = Dir["#{path}/gems/*-*/lib"]
55 dirs.delete_if { |x| x =~ %r{/rev-[\d\.]+/lib} }
56 puts dirs.map { |x| File.expand_path(x) }.join(':')