Sha256: 9eefdc6d57b01974d9a9a432f5cd5c411f4b7e1bfcea708897a43c8b1d6f6cbc

Contents?: true

Size: 1.15 KB

Versions: 11

Compression:

Stored size: 1.15 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

# sinatra/activerecord only 'reads' RACK_ENV, so make sure it is set
ENV['RACK_ENV'] ||= ENV['RAILS_ENV']

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

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
snails-0.6.1 lib/snails.rb
snails-0.6.0 lib/snails.rb
snails-0.5.6 lib/snails.rb
snails-0.5.5 lib/snails.rb
snails-0.5.4 lib/snails.rb
snails-0.5.3 lib/snails.rb
snails-0.5.2 lib/snails.rb
snails-0.5.1 lib/snails.rb
snails-0.5.0 lib/snails.rb
snails-0.4.3 lib/snails.rb
snails-0.4.2 lib/snails.rb