reachlocal/boxci

View on GitHub
lib/boxci.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'boxci/version'
require 'boxci/project_config'
require 'boxci/global_config'
require 'boxci/provider_config'
require 'boxci/initializer'
require 'boxci/builder'
require 'boxci/dependency_checker'
require 'boxci/tester'
require 'boxci/language_factory'
require 'boxci/language'
require 'boxci/languages/ruby'
require 'boxci/provider_factory'
require 'boxci/provider'
require 'boxci/providers/virtualbox'
require 'boxci/providers/aws'
require 'boxci/providers/openstack'
require 'boxci/config_permutation'
require 'boxci/config_permutation_component'
require 'boxci/config_permutation_component_factory'
require 'boxci/config_permutation_components/rbenv'
require 'boxci/test_runner'

module Boxci
  class MissingDependency < StandardError; end
  class PureVirtualMethod < StandardError; end
  class CommandFailed < StandardError; end

  def self.project_config
    if @project_config
      return @project_config
    else
      @project_config = Boxci::ProjectConfig.new
      @project_config.load
      return @project_config
    end
  end

  def self.global_config
    if @global_config
      return @global_config
    else
      @global_config = Boxci::GlobalConfig.new
      @global_config.load
      return @global_config
    end
  end

  def self.provider_config(provider)
    if @provider_config
      return @provider_config
    else
      @provider_config = Boxci::ProviderConfig.new(provider)
      @provider_config.load
      return @provider_config
    end
  end

  def self.default_provider
    if global_config.default_provider
      return global_config.default_provider
    else
      return ::Boxci::CLI::DEFAULT_PROVIDER
    end
  end

  def self.project_path
    @project_path ||= File.expand_path(%x(pwd)).strip
  end
end

# TODO: Restructure to prevent this from needing to be here.
require 'boxci/cli'