Sha256: 2c931ccfe57655eb6f9e84c4139e25ccca21ed3ed247af5368debc504bc0de71

Contents?: true

Size: 956 Bytes

Versions: 1

Compression:

Stored size: 956 Bytes

Contents

require 'singleton'

module CanTango
  class Configuration
    class Engines
      autoload_modules :Permission, :Permit, :Cache, :Store, :Engine

      include Singleton

      # engines available
      def self.available
        [:permit, :permission, :cache]
      end

      def available
        self.class.available
      end

      def available? name
        self.class.available.include? name.to_sym
      end

      def all state
        available.each {|engine| send(engine).set state }
      end

      def clear!
        available.each {|engine| send(engine).reset! }
      end

      def each &block
        available.each {|engine| yield send(engine) if respond_to(engine) }
      end

      available.each do |engine|
        # def permission
        #   return Permission.instance
        # end
        class_eval %{
          def #{engine}
            #{engine.to_s.camelize}.instance
         end
        }
      end
    end
  end
end


Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cantango-0.8.0 lib/cantango/configuration/engines.rb