Module: Blocks::BuilderPermissions
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/blocks/experimental/builder_permissions.rb
Constant Summary collapse
- METHODS_TO_PROTECT =
[:render, :define, :deferred_render, :replace, :skip]
Instance Method Summary collapse
- #permit(*names) ⇒ Object
- #permit_all ⇒ Object
- #permit_anonymous_blocks ⇒ Object
- #permitted?(name) ⇒ Boolean
- #permitted_blocks ⇒ Object
- #restrict_blocks ⇒ Object
Instance Method Details
#permit(*names) ⇒ Object
33 34 35 |
# File 'lib/blocks/experimental/builder_permissions.rb', line 33 def permit(*names) self.permitted_blocks += names end |
#permit_all ⇒ Object
37 38 39 |
# File 'lib/blocks/experimental/builder_permissions.rb', line 37 def permit_all self.allow_all_blocks = true end |
#permit_anonymous_blocks ⇒ Object
41 42 43 |
# File 'lib/blocks/experimental/builder_permissions.rb', line 41 def permit_anonymous_blocks self.allow_anonymous_blocks = true end |
#permitted?(name) ⇒ Boolean
45 46 47 48 49 50 |
# File 'lib/blocks/experimental/builder_permissions.rb', line 45 def permitted?(name) allow_all_blocks || (block_definitions[name].try(:anonymous) && allow_anonymous_blocks) || !name.respond_to?(:to_sym) || permitted_blocks.any? {|e| e.to_sym == name.to_sym } end |
#permitted_blocks ⇒ Object
29 30 31 |
# File 'lib/blocks/experimental/builder_permissions.rb', line 29 def permitted_blocks @permitted_blocks ||= [] end |
#restrict_blocks ⇒ Object
25 26 27 |
# File 'lib/blocks/experimental/builder_permissions.rb', line 25 def restrict_blocks self.allow_all_blocks = false end |