Sha256: 4f7680d2695cee7e9173fad68ff81bf33667e1bc180c12733443b7195f7fa02f

Contents?: true

Size: 873 Bytes

Versions: 2

Compression:

Stored size: 873 Bytes

Contents

class Spork::AppFramework
  SUPPORTED_FRAMEWORKS = {
    :Rails => lambda do
      File.exist?("config/environment.rb") && File.read("config/environment.rb").include?('RAILS_GEM_VERSION')
    end
  }
  
  def self.detect_framework_name
    SUPPORTED_FRAMEWORKS.each do |key, value|
      return key if value.call
    end
    :Unknown
  end
  
  def self.detect_framework
    name = detect_framework_name
    self[name]
  end
  
  def self.[](name)
    instances[name] ||= (
      require File.join(File.dirname(__FILE__), "app_framework", name.to_s.downcase)
      const_get(name).new
    )
  end
  
  def self.instances
    @instances ||= {}
  end
  
  def self.short_name
    name.gsub('Spork::AppFramework::', '')
  end
  
  def bootstrap_required?
    raise NotImplemented
  end
  
  def preload(&block)
    yield
  end
  
  def name
    self.class.short_name
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
timcharper-spork-0.5.0 lib/spork/app_framework.rb
spork-0.5.1 lib/spork/app_framework.rb