Module: PunditImplications::ClassMethods
- Defined in:
- lib/pundit_implications.rb
Instance Method Summary collapse
-
#define_implications(implications) ⇒ Object
Defines the implication graph and constructs query functions for all permissions by monkey-patching.
Instance Method Details
#define_implications(implications) ⇒ Object
Defines the implication graph and constructs query functions for all permissions by monkey-patching
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/pundit_implications.rb', line 26 def define_implications(implications) @_implications ||= {} @_implications.merge!(implications) {|k,v1,v2| v1 | v2} transitive = transitive_hull(@_implications) transitive.each_key do |key| define_method(key.to_s + '?') {granted_list.include?(key)} end define_method('implied_permissions') {|initial| transitive.has_key?(initial) ? transitive[initial] : []} define_method('all_permissions') {transitive.keys.sort} end |