module Merit::BadgeRulesMethods
Public Instance Methods
defined_rules()
click to toggle source
Currently defined rules
# File lib/merit/badge_rules_methods.rb, line 26 def defined_rules @defined_rules ||= {} end
grant_on(actions, *args, &block)
click to toggle source
Define rule for granting badges
# File lib/merit/badge_rules_methods.rb, line 4 def grant_on(actions, *args, &block) options = args.extract_options! actions = Array.wrap(actions) rule = Rule.new rule.badge_id = options[:badge_id] rule.badge_name = options[:badge] rule.level = options[:level] rule.to = options[:to] || :action_user rule.multiple = options[:multiple] || false rule.temporary = options[:temporary] || false rule.model_name = options[:model_name] || actions.first.split('#').first rule.block = block actions.each do |action| defined_rules[action] ||= [] defined_rules[action] << rule end end