Sha256: f835902c5bdfb8c9b99f0765b2d18077828bd9dfda893dd9932d747301fb29cf

Contents?: true

Size: 559 Bytes

Versions: 1

Compression:

Stored size: 559 Bytes

Contents

module Houston
  
  def self.server?
    !!server
  end
  
  def self.server
    @server ||= discover_server
  end
  
private
  
  def self.discover_server
    if defined?(::PhusionPassenger)
      :passenger
    elsif defined?(::Unicorn) && defined?(::Unicorn::HttpServer) && in_object_space?(::Unicorn::HttpServer)
      :unicorn
    else
      $WEB_SERVER
    end
  end
  
  def self.in_object_space?(klass)
    ObjectSpace.each_object(klass).any?
  end
  
end

if Houston.server?
  puts "\e[94mRunning as a #{Houston.server.inspect} application\e[0m"
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
houston-core-0.5.0.beta1 lib/houston_server.rb