class RightOn::Rule
Public Class Methods
new(right)
click to toggle source
# File lib/right_on/rule.rb, line 7 def initialize(right) @right = right end
rule_for(right)
click to toggle source
# File lib/right_on/rule.rb, line 3 def self.rule_for(right) self.new(right).call end
Public Instance Methods
call()
click to toggle source
# File lib/right_on/rule.rb, line 11 def call validate! CanCan::Rule.new(can?, action, subject, conditions, nil) end
Private Instance Methods
action()
click to toggle source
# File lib/right_on/rule.rb, line 27 def action @right.action.to_sym end
can?()
click to toggle source
# File lib/right_on/rule.rb, line 23 def can? @right.can end
conditions()
click to toggle source
# File lib/right_on/rule.rb, line 35 def conditions model_class ? @right.conditions : nil end
model_class()
click to toggle source
# File lib/right_on/rule.rb, line 39 def model_class return nil unless @right.subject.present? begin model_class = self.class.const_get(@right.subject) rescue NameError model_class = Class end return model_class if model_class.ancestors.include?(ActiveRecord::Base) end
subject()
click to toggle source
# File lib/right_on/rule.rb, line 31 def subject model_class || @right.subject end
validate!()
click to toggle source
# File lib/right_on/rule.rb, line 19 def validate! fail RightOn::Error, 'must specify an action' unless @right.action.present? end