Sha256: 143cc4e583307432b8b7909e334aea25ff27d871d2515b09923152c7f0db2d36

Contents?: true

Size: 919 Bytes

Versions: 4

Compression:

Stored size: 919 Bytes

Contents

module CanTango
  module Ability
    module Executor
      class Base
        include CanTango::Helpers::Debug

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

        def execute!
          return if !valid?
          start_execute
          return if cached? # rule set already loaded

          clear_rules!
          permit_rules

          end_execute
          rules # return rule set
        end

        def rules
          @rules ||= []
        end

        def clear_rules!
          @rules ||= []
        end

        def permit_rules
          raise NotImplementedError
        end

        def cached?
          false
        end

        protected

        def start_execute
          debug "Executing base Ability"
        end

        def end_execute
          debug "DONE"
        end

        def key_method_names
          []
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cantango-core-0.1.3 lib/cantango/ability/executor/base.rb
cantango-core-0.1.2 lib/cantango/ability/executor/base.rb
cantango-core-0.1.1 lib/cantango/ability/executor/base.rb
cantango-core-0.1.0 lib/cantango/ability/executor/base.rb