Sha256: d6a7fac30b7bc08b872fb3a5edbf96684c2eff3a59b66f6c247b5287f9a85b59

Contents?: true

Size: 997 Bytes

Versions: 1

Compression:

Stored size: 997 Bytes

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'
puts "Loaded #{Snails.env} environment."

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
snails-0.2.5 lib/snails.rb