Sha256: 7332a478e3f070dd5e3190148f163c0f0161c951dbcd7fe985b08ea344f738f7

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

require 'logger'
require 'pathname'

module Snails
  class Environment
    include Comparable

    def initialize(str); @str = str.to_s.freeze; end
    def to_s; @str; end
    def <=>(str); @str <=> str.to_s; end
    def inspect; @str.inspect; end

    %w(production staging development test).each do |key|
      define_method("#{key}?") { @str == key }
    end

    alias_method :dev?, :development?
    alias_method :prod?, :production?
    alias_method :testing?, :test?
  end

  def self.env
    @env ||= Environment.new(ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'development')
  end

  def self.root
    @root ||= Pathname.new(Dir.pwd)
  end

  def self.apps
    @apps ||= []
  end

  def self.app
    puts "Warning: There's more than one Snail app defined!" if @apps.count > 1
    @apps.first
  end

  def self.logger
    @logged ||= Logger.new(File.exist?(root.join('log')) ? root.join('log', "#{Snails.env}.log") : nil)
  end
end

require 'snails/app' unless Snails.env.test?
unless ENV['SILENT']
  puts "Loaded #{Snails.env} environment. (#{Time.now.to_s})" 
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
snails-0.4.0 lib/snails.rb
snails-0.3.8 lib/snails.rb