module Merit::Models::ActionConcern
Public Instance Methods
check_all_rules()
click to toggle source
Check rules defined for a merit_action
# File lib/merit/models/action_concern.rb, line 24 def check_all_rules mark_as_processed! return if had_errors check_rules rules_matcher.select_from(Merit::AppBadgeRules), :badges check_rules rules_matcher.select_from(Merit::AppPointRules), :points end
check_unprocessed()
click to toggle source
# File lib/merit/models/action_concern.rb, line 18 def check_unprocessed where(processed: false).find_each(&:check_all_rules) end
Private Instance Methods
check_rules(rules_array, badges_or_points)
click to toggle source
# File lib/merit/models/action_concern.rb, line 34 def check_rules(rules_array, badges_or_points) rules_array.each do |rule| judge = Merit::Judge.new(rule, action: self) judge.public_send(:"apply_#{badges_or_points}") end end
mark_as_processed!()
click to toggle source
# File lib/merit/models/action_concern.rb, line 41 def mark_as_processed! self.processed = true save end
rules_matcher()
click to toggle source
# File lib/merit/models/action_concern.rb, line 46 def rules_matcher @rules_matcher ||= ::Merit::RulesMatcher.new(target_model, action_method) end