Class: Spork::AppFramework
- Inherits:
-
Object
- Object
- Spork::AppFramework
- Defined in:
- lib/spork/app_framework.rb
Defined Under Namespace
Classes: Padrino, Rails, Unknown
Constant Summary
- SUPPORTED_FRAMEWORKS =
{ :Padrino => lambda { File.exist?("config/boot.rb") && File.read("config/boot.rb").include?('PADRINO') }, :Rails => lambda { File.exist?("config/environment.rb") && ( File.read("config/environment.rb").include?('RAILS_GEM_VERSION') || (File.exist?("config/application.rb") && File.read("config/application.rb").include?("Rails::Application")) ) } }
Class Method Summary (collapse)
-
+ (Object) [](name)
Initializes, stores, and returns a singleton instance of the named AppFramework.
-
+ (Object) detect_framework
Same as detect_framework_name, but returns an instance of the specific AppFramework class.
-
+ (Object) detect_framework_name
Iterates through all SUPPORTED_FRAMEWORKS and returns the symbolic name of the project application framework detected.
- + (Object) setup_autoload
- + (Object) short_name
Instance Method Summary (collapse)
-
- (Boolean) bootstrap_required?
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.
-
- (Object) entry_point
Abstract: The path to the file that loads the project environment, ie config/environment.rb.
- - (Object) preload(&block)
- - (Object) short_name
Class Method Details
+ (Object) [](name)
Initializes, stores, and returns a singleton instance of the named AppFramework.
Parameters
# name - A symbolic name of a AppFramework subclass
Example
Spork::AppFramework[:Rails]
48 49 50 |
# File 'lib/spork/app_framework.rb', line 48 def self.[](name) instances[name] ||= const_get(name).new end |
+ (Object) detect_framework
Same as detect_framework_name, but returns an instance of the specific AppFramework class.
34 35 36 37 |
# File 'lib/spork/app_framework.rb', line 34 def self.detect_framework name = detect_framework_name self[name] end |
+ (Object) detect_framework_name
Iterates through all SUPPORTED_FRAMEWORKS and returns the symbolic name of the project application framework detected. Otherwise, returns :Unknown
26 27 28 29 30 31 |
# 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 |
+ (Object) setup_autoload
19 20 21 22 23 |
# 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 |
+ (Object) short_name
52 53 54 |
# File 'lib/spork/app_framework.rb', line 52 def self.short_name name.gsub('Spork::AppFramework::', '') end |
Instance Method Details
- (Boolean) bootstrap_required?
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.
57 58 59 |
# File 'lib/spork/app_framework.rb', line 57 def bootstrap_required? entry_point.nil? end |
- (Object) entry_point
Abstract: The path to the file that loads the project environment, ie config/environment.rb. Returns nil if there is none.
62 63 64 |
# File 'lib/spork/app_framework.rb', line 62 def entry_point raise NotImplementedError end |
- (Object) preload(&block)
66 67 68 |
# File 'lib/spork/app_framework.rb', line 66 def preload(&block) yield end |
- (Object) short_name
70 71 72 |
# File 'lib/spork/app_framework.rb', line 70 def short_name self.class.short_name end |