Sha256: 17f12c9adc9947185fa6d327818a61105d6e17bbcf30bc9eac118f88354fc4b0

Contents?: true

Size: 563 Bytes

Versions: 160

Compression:

Stored size: 563 Bytes

Contents

require "delegate"

module Ddr
  module Auth
    #
    # A class which applies ability definitions to the delegated ability class
    # when `#call` is invoked.
    #
    # @abstract
    #
    class AbilityDefinitions < SimpleDelegator

      # Applies ability definitions to the ability and return it
      def self.call(ability)
        new(ability).call
        ability
      end

      # Applies abilities definitions with `can` and `cannot`.
      def call
        raise NotImplementedError, "Subclasses must implement `#call`."
      end

    end
  end
end

Version data entries

160 entries across 160 versions & 2 rubygems

Version Path
ddr-core-1.17.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.16.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.15.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.14.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.13.2 lib/ddr/auth/ability_definitions.rb
ddr-core-1.13.1 lib/ddr/auth/ability_definitions.rb
ddr-core-1.13.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.12.2 lib/ddr/auth/ability_definitions.rb
ddr-core-1.12.1 lib/ddr/auth/ability_definitions.rb
ddr-core-1.12.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.11.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.10.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.9.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.8.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.7.0 lib/ddr/auth/ability_definitions.rb
ddr-core-1.6.6 lib/ddr/auth/ability_definitions.rb
ddr-core-1.6.5 lib/ddr/auth/ability_definitions.rb
ddr-core-1.6.4 lib/ddr/auth/ability_definitions.rb
ddr-core-1.6.3 lib/ddr/auth/ability_definitions.rb
ddr-core-1.6.2 lib/ddr/auth/ability_definitions.rb