Class: CanCan::ModelAdapters::StiNormalizer
- Inherits:
-
Object
- Object
- CanCan::ModelAdapters::StiNormalizer
- Defined in:
- lib/cancan/model_adapters/sti_normalizer.rb
Class Method Summary collapse
Class Method Details
.normalize(rules) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cancan/model_adapters/sti_normalizer.rb', line 7 def normalize(rules) rules_cache = [] rules.delete_if.with_index do |rule, _index| subjects = rule.subjects.select do |subject| next if subject == :all || subject.descends_from_active_record? rules_cache.push(build_rule_for_subclass(rule, subject)) true end subjects.length == rule.subjects.length end rules_cache.each { |rule| rules.push(rule) } end |