module Shotgun
def self.after_fork(&block)
def self.after_fork(&block) @after_fork ||= [] @after_fork << block if block @after_fork end
def self.after_fork!
def self.after_fork! after_fork.each { |block| block.call } end
def self.before_fork(&block)
def self.before_fork(&block) @before_fork ||= [] @before_fork << block if block @before_fork end
def self.before_fork!
def self.before_fork! before_fork.each { |block| block.call } end
def self.enable_copy_on_write
def self.enable_copy_on_write GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=) end
def self.new(rackup_file, &block)
def self.new(rackup_file, &block) Loader.new(rackup_file, &block) end
def self.preload(files=%w[./config/shotgun.rb ./shotgun.rb])
def self.preload(files=%w[./config/shotgun.rb ./shotgun.rb]) files.each do |preload_file| if File.exist?(preload_file) module_eval File.read(preload_file), preload_file return preload_file end end end