module Teaspoon::Environment

Public Class Methods

check_env!(override = nil) click to toggle source
# File lib/teaspoon/environment.rb, line 23
def self.check_env!(override = nil)
  find_env(override)
end
load(options = {}) click to toggle source
# File lib/teaspoon/environment.rb, line 5
def self.load(options = {})
  load_rails
  Teaspoon.abort("Rails environment not found.", 1) unless rails_loaded?

  require "teaspoon"
  require "teaspoon/server"
  require "teaspoon/runner"
  require "teaspoon/coverage"
  require "teaspoon/exporter"

  Teaspoon.configuration.override_from_options(options)
  Teaspoon::Engine::ExceptionHandling.add_rails_handling
end
require_environment(override = nil) click to toggle source
# File lib/teaspoon/environment.rb, line 19
def self.require_environment(override = nil)
  require_env(find_env(override))
end

Private Class Methods

find_env(override = nil) click to toggle source
# File lib/teaspoon/environment.rb, line 29
def self.find_env(override = nil)
  override ||= ENV["TEASPOON_ENV"]
  env_files = override && !override.empty? ? [override] : standard_environments

  env_files.each do |filename|
    file = File.expand_path(filename, Teaspoon.root)
    ENV["TEASPOON_ENV"] = file if override
    return file if File.exist?(file)
  end

  raise Teaspoon::EnvironmentNotFound.new(searched: env_files.join(", "))
end
load_rails() click to toggle source
# File lib/teaspoon/environment.rb, line 54
def self.load_rails
  rails_env = ENV["TEASPOON_RAILS_ENV"] || File.expand_path("config/environment.rb", Teaspoon.root)

  # Try to load rails, assume teaspoon_env will do it if the expected
  # environment isn't found.
  if File.exist?(rails_env)
    require rails_env
  else
    require_environment
  end
end
rails_loaded?() click to toggle source
# File lib/teaspoon/environment.rb, line 50
def self.rails_loaded?
  !!defined?(Rails)
end
require_env(file) click to toggle source
# File lib/teaspoon/environment.rb, line 46
def self.require_env(file)
  ::Kernel.load(file)
end
standard_environments() click to toggle source
# File lib/teaspoon/environment.rb, line 42
def self.standard_environments
  ["spec/teaspoon_env.rb", "test/teaspoon_env.rb", "teaspoon_env.rb"]
end