Sha256: fd3ab2ed71e9f7ed0464b2c54cea66b080ff76fe663b5993589d053e477e3249

Contents?: true

Size: 1.08 KB

Versions: 21

Compression:

Stored size: 1.08 KB

Contents

require "spring/errors"

module Spring
  class << self
    attr_accessor :application_root

    def gemfile
      ENV['BUNDLE_GEMFILE'] || "Gemfile"
    end

    def after_fork_callbacks
      @after_fork_callbacks ||= []
    end

    def after_fork(&block)
      after_fork_callbacks << block
    end

    def verify_environment
      application_root_path
    end

    def application_root_path
      @application_root_path ||= begin
        if application_root
          path = Pathname.new(File.expand_path(application_root))
        else
          path = project_root_path
        end

        raise MissingApplication.new(path) unless path.join("config/application.rb").exist?
        path
      end
    end

    def project_root_path
      @project_root_path ||= find_project_root(Pathname.new(File.expand_path(Dir.pwd)))
    end

    private

    def find_project_root(current_dir)
      if current_dir.join(gemfile).exist?
        current_dir
      elsif current_dir.root?
        raise UnknownProject.new(Dir.pwd)
      else
        find_project_root(current_dir.parent)
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
spring-1.5.0 lib/spring/configuration.rb
spring-1.4.4 lib/spring/configuration.rb
spring-1.4.3 lib/spring/configuration.rb
spring-1.4.2 lib/spring/configuration.rb
spring-1.4.1 lib/spring/configuration.rb
spring-1.4.0 lib/spring/configuration.rb
spring-1.3.6 lib/spring/configuration.rb
spring-1.3.5 lib/spring/configuration.rb
spring-1.3.4 lib/spring/configuration.rb
spring-1.3.3 lib/spring/configuration.rb
spring-1.3.2 lib/spring/configuration.rb
spring-1.3.1 lib/spring/configuration.rb
spring-1.3.0 lib/spring/configuration.rb
spring-1.2.0 lib/spring/configuration.rb
spring-1.1.3 lib/spring/configuration.rb
spring-1.1.2 lib/spring/configuration.rb
spring-1.1.1 lib/spring/configuration.rb
spring-1.1.0 lib/spring/configuration.rb
spring-1.1.0.beta4 lib/spring/configuration.rb
spring-1.1.0.beta3 lib/spring/configuration.rb