class Conjur::Policy::Types::Policy

Policy includes the functionality of Entitlements, wrapped in a policy role, policy resource, policy id and policy version.

Public Instance Methods

body(&block) click to toggle source
# File lib/conjur/policy/types/policy.rb, line 153
def body &block
  if block_given?
    singleton :body, lambda { Body.new }, &block
  end
  @body
end
body=(body) click to toggle source
# File lib/conjur/policy/types/policy.rb, line 160
def body= body
  @body = body
end
referenced_records() click to toggle source

Body is handled specially.

Calls superclass method
# File lib/conjur/policy/types/policy.rb, line 149
def referenced_records
  super - Array(@body)
end
resource() click to toggle source
# File lib/conjur/policy/types/policy.rb, line 141
def resource
  raise "account is nil" unless account
  @resource ||= Resource.new("#{account}:policy:#{id}").tap do |resource|
    resource.owner = Role.new(role.roleid)
  end
end
role() click to toggle source
# File lib/conjur/policy/types/policy.rb, line 134
def role
  raise "account is nil" unless account
  @role ||= Role.new("#{account}:policy:#{id}").tap do |role|
    role.owner = Role.new(owner.roleid)
  end
end

Protected Instance Methods

singleton(id, factory, &block) click to toggle source
# File lib/conjur/policy/types/policy.rb, line 166
def singleton id, factory, &block
  object = instance_variable_get("@#{id}")
  unless object
    object = factory.call
    class << object
      include Tagless
    end
    instance_variable_set("@#{id}", object)
  end
  do_scope object, &block
end