Sha256: 35261549b470ea74f7c1e623825399769edd786a63671775fa5e24ba0ad583a3

Contents?: true

Size: 501 Bytes

Versions: 5

Compression:

Stored size: 501 Bytes

Contents

module Abilities
  class Proxy

    def initialize(definitions, &block)
      @definitions = definitions
      instance_eval &block
    end

    def can(actions, resources, &block)
      @definitions.add actions, resources, (block_given? ? block : true)
    end

    def cannot(actions, resources, &block)
      @definitions.add actions, resources, (block_given? ? block : false)
    end

    def method_missing(name, *args, &block)
      @definitions.user.send name, *args, &block
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
abilities-5.1.2 lib/abilities/proxy.rb
abilities-5.1.1 lib/abilities/proxy.rb
abilities-5.1.0 lib/abilities/proxy.rb
abilities-4.0.0.1 lib/abilities/proxy.rb
abilities-4.0.0.0 lib/abilities/proxy.rb