class Spork::AppFramework

Constants

SUPPORTED_FRAMEWORKS

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 Instance Methods

bootstrap_required?() click to toggle source

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.

# File lib/spork/app_framework.rb, line 57
def bootstrap_required?
  entry_point.nil?
end
entry_point() click to toggle source

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

# File lib/spork/app_framework.rb, line 62
def entry_point
  raise NotImplementedError
end
preload() { || ... } click to toggle source
# File lib/spork/app_framework.rb, line 66
def preload(&block)
  yield
end
short_name() click to toggle source
# File lib/spork/app_framework.rb, line 70
def short_name
  self.class.short_name
end

Public Class Methods

[](name) click to toggle source

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

Parameters

# name - A symbolic name of a AppFramework subclass

Example

Spork::AppFramework[:Rails]
# File lib/spork/app_framework.rb, line 48
def self.[](name)
  instances[name] ||= const_get(name).new
end
detect_framework() click to toggle source

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

# File lib/spork/app_framework.rb, line 34
def self.detect_framework
  name = detect_framework_name
  self[name]
end
detect_framework_name() click to toggle source

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

# File lib/spork/app_framework.rb, line 26
def self.detect_framework_name
  SUPPORTED_FRAMEWORKS.each do |key, value|
    return key if value.call
  end
  :Unknown
end
setup_autoload() click to toggle source
# File lib/spork/app_framework.rb, line 19
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
short_name() click to toggle source
# File lib/spork/app_framework.rb, line 52
def self.short_name
  name.gsub('Spork::AppFramework::', '')
end

Protected Class Methods

instances() click to toggle source
# File lib/spork/app_framework.rb, line 75
def self.instances
  @instances ||= {}
end