Sha256: f17cb0e68f9a1f6c26ef5a33a76fa116d8323987f46e22353c2747331c41fd42

Contents?: true

Size: 427 Bytes

Versions: 2

Compression:

Stored size: 427 Bytes

Contents

module Ostiary
  class Ostiary
    attr_accessor :policies

    def initialize
      @policies = []
    end

    def authorize!(action, &block)
      policies.each do |policy|
        next if policy.met?(action, block)
        raise PolicyBroken, policy.error_message(action)
      end
    end

    def authorized?(action, &block)
      policies.all? do |policy|
        policy.met?(action, block)
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ostiary-0.11.0 lib/ostiary/ostiary.rb
ostiary-0.10.0 lib/ostiary/ostiary.rb