Class: Placet::DefinitionBuilder
- Inherits:
-
Object
- Object
- Placet::DefinitionBuilder
- Defined in:
- lib/placet/dsl.rb
Instance Method Summary collapse
- #actions(resource, operations) ⇒ Object
- #attach(principal, *names) ⇒ Object
-
#initialize(definition, registry) ⇒ DefinitionBuilder
constructor
A new instance of DefinitionBuilder.
- #policy(name, attach_to: nil, &block) ⇒ Object
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.(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.(principal, [name]) } end |