Class Spork::AppFramework
In: lib/spork/app_framework.rb
Parent: Object

Methods

Constants

SUPPORTED_FRAMEWORKS = { :Rails => lambda { File.exist?("config/environment.rb") && File.read("config/environment.rb").include?('RAILS_GEM_VERSION')   A hash of procs where the key is the class name, and the proc takes no arguments and returns true if it detects that said application framework is being used in the project.

The key :Rails maps to Spork::AppFramework::Rails

This is used to reduce the amount of code needed to be loaded - only the detected application framework‘s support code is loaded.

Public Class methods

Initializes, stores, and returns a singleton instance of the named AppFramework.

Parameters

# name - A symbolic name of a AppFramework subclass

Example

  Spork::AppFramework[:Rails]

[Source]

# File lib/spork/app_framework.rb, line 42
  def self.[](name)
    instances[name] ||= const_get(name).new
  end

Same as detect_framework_name, but returns an instance of the specific AppFramework class.

[Source]

# File lib/spork/app_framework.rb, line 28
  def self.detect_framework
    name = detect_framework_name
    self[name]
  end

Iterates through all SUPPORTED_FRAMEWORKS and returns the symbolic name of the project application framework detected. Otherwise, returns :Unknown

[Source]

# File lib/spork/app_framework.rb, line 20
  def self.detect_framework_name
    SUPPORTED_FRAMEWORKS.each do |key, value|
      return key if value.call
    end
    :Unknown
  end

[Source]

# File lib/spork/app_framework.rb, line 13
  def self.setup_autoload
    ([:Unknown] + SUPPORTED_FRAMEWORKS.keys).each do |name|
      autoload name, File.join(File.dirname(__FILE__), "app_framework", name.to_s.downcase)
    end
  end

[Source]

# File lib/spork/app_framework.rb, line 46
  def self.short_name
    name.gsub('Spork::AppFramework::', '')
  end

Protected Class methods

[Source]

# File lib/spork/app_framework.rb, line 69
    def self.instances
      @instances ||= {}
    end

Public Instance methods

If there is some stuff out of the box that the Spork can do to speed up tests without the test helper file being bootstrapped, this should return false.

[Source]

# File lib/spork/app_framework.rb, line 51
  def bootstrap_required?
    entry_point.nil?
  end

Abstract: The path to the file that loads the project environment, ie config/environment.rb. Returns nil if there is none.

[Source]

# File lib/spork/app_framework.rb, line 56
  def entry_point
    raise NotImplementedError
  end

[Source]

# File lib/spork/app_framework.rb, line 60
  def preload(&block)
    yield
  end

[Source]

# File lib/spork/app_framework.rb, line 64
  def short_name
    self.class.short_name
  end

[Validate]