Sha256: 7df1c99fe2ff78e37cda9ee4d7b663e4745041d13083a4b53814c0a7bc016d8b

Contents?: true

Size: 690 Bytes

Versions: 10

Compression:

Stored size: 690 Bytes

Contents

module CanTango
  class Engine
    include CanTango::Helpers::Debug

    attr_reader :ability

    delegate :session, :user, :subject, :candidate, :cached?, :to => :ability

    def initialize ability
      @ability = ability
    end

    def execute!
      raise NotImplementedError
    end

    def engine_name
      raise NotImplementedError
    end

    protected

    def valid_mode?
      valid_cache_mode? || valid_no_cache_mode?
    end

    def valid_cache_mode?
      modes.include?(:cache) && cached?
    end

    def valid_no_cache_mode?
      modes.include?(:no_cache) && !cached?
    end

    def modes
      CanTango.config.engine(engine_name.to_sym).modes
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
cantango-core-0.1.2 lib/cantango/engine.rb
cantango-core-0.1.1 lib/cantango/engine.rb
cantango-core-0.1.0 lib/cantango/engine.rb
cantango-0.9.4.7 lib/cantango/engine.rb
cantango-0.9.4.6 lib/cantango/engine.rb
cantango-0.9.4.5 lib/cantango/engine.rb
cantango-0.9.4.3 lib/cantango/engine.rb
cantango-0.9.4.2 lib/cantango/engine.rb
cantango-0.9.4.1 lib/cantango/engine.rb
cantango-0.9.4 lib/cantango/engine.rb