1 # -*- encoding: binary -*-
2 # frozen_string_literal: false
3 manifest = File.exist?('.manifest') ?
4 IO.readlines('.manifest').map!(&:chomp!) : `git ls-files`.split("\n")
6 # don't bother with tests that fork, not worth our time to get working
7 # with `gem check -t` ... (of course we care for them when testing with
8 # GNU make when they can run in parallel)
9 test_files = manifest.grep(%r{\Atest/unit/test_.*\.rb\z}).map do |f|
10 File.readlines(f).grep(/\bfork\b/).empty? ? f : nil
13 Gem::Specification.new do |s|
15 s.version = (ENV['VERSION'] || '6.1.0').dup
16 s.authors = ['unicorn hackers']
17 s.summary = 'Rack HTTP server for fast clients and Unix'
18 s.description = File.read('README').split("\n\n")[1]
19 s.email = %q{unicorn-public@yhbt.net}
20 s.executables = %w(unicorn unicorn_rails)
21 s.extensions = %w(ext/unicorn_http/extconf.rb)
22 s.extra_rdoc_files = IO.readlines('.document').map!(&:chomp!).keep_if do |f|
26 s.homepage = 'https://yhbt.net/unicorn/'
27 s.test_files = test_files
29 # 2.5.0 is the minimum supported version. We don't specify
30 # a maximum version to make it easier to test pre-releases,
31 # but we do warn users if they install unicorn on an untested
32 # version in extconf.rb
33 s.required_ruby_version = ">= 2.5.0"
35 # We do not have a hard dependency on rack, it's possible to load
36 # things which respond to #call. HTTP status lines in responses
37 # won't have descriptive text, only the numeric status.
38 s.add_development_dependency(%q<rack>)
40 s.add_dependency(%q<raindrops>, '~> 0.7')
42 s.add_development_dependency('test-unit', '~> 3.0')
44 # Note: To avoid ambiguity, we intentionally avoid the SPDX-compatible
45 # 'Ruby' here since Ruby 1.9.3 switched to BSD-2-Clause, but we
46 # inherited our license from Mongrel when Ruby was at 1.8.
47 # We cannot automatically switch licenses when Ruby changes.
48 s.licenses = ['GPL-2.0+', 'Ruby-1.8']