Class: Placet::DefinitionBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/placet/dsl.rb

Instance Method Summary collapse

Constructor Details

#initialize(definition, registry) ⇒ DefinitionBuilder

Returns a new instance of DefinitionBuilder.



14
15
16
17
# File 'lib/placet/dsl.rb', line 14

def initialize(definition, registry)
  @definition = definition
  @registry = registry
end

Instance Method Details

#actions(resource, operations) ⇒ Object



19
# File 'lib/placet/dsl.rb', line 19

def actions(resource, operations) = @registry.add(resource, operations)

#attach(principal, *names) ⇒ Object



28
# File 'lib/placet/dsl.rb', line 28

def attach(principal, *names) = @definition.add_attachment(principal, names.flatten)

#policy(name, attach_to: nil, &block) ⇒ Object



21
22
23
24
25
26
# File 'lib/placet/dsl.rb', line 21

def policy(name, attach_to: nil, &block)
  builder = PolicyBuilder.new
  builder.instance_eval(&block)
  @definition.add_policy(name, builder.statements)
  Array(attach_to).each { |principal| @definition.add_attachment(principal, [name]) }
end