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