Sha256: 2eab0669f671785312343a9701141bf26cfc63e373f77b54788f4fc7069602cf

Contents?: true

Size: 1.07 KB

Versions: 4

Compression:

Stored size: 1.07 KB

Contents

require File.join(File.dirname(__FILE__), "lockdown", "classy-inheritance")
require File.join(File.dirname(__FILE__), "lockdown", "helper")

module Lockdown
  class << self
    include Lockdown::Helper

    def mixin
      if mixin_resource?("frameworks")
        unless mixin_resource?("orms")
          raise NotImplementedError, "ORM unknown to Lockdown!"
        end
      else
        raise NotImplementedError, "Framework unknown to Lockdown!"
      end
    end

    private

    def mixin_resource?(str)
      Dir["#{File.dirname(__FILE__)}/lockdown/#{str}/*.rb"].each do |f|
        require "#{f}"
        mod = File.basename(f).split(".")[0]
        mklass = eval("Lockdown::#{str.capitalize}::#{Lockdown.camelize(mod)}")
        if mklass.use_me?
          include mklass
          return true
        end
      end
      false
    end
  end # class block
end # Lockdown


require File.join(File.dirname(__FILE__), "lockdown", "system")
require File.join(File.dirname(__FILE__), "lockdown", "controller")
require File.join(File.dirname(__FILE__), "lockdown", "session")

Lockdown.mixin

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lockdown-0.6.0 lib/lockdown.rb
lockdown-0.6.1 lib/lockdown.rb
lockdown-0.6.2 lib/lockdown.rb
lockdown-0.6.3 lib/lockdown.rb