Sha256: 04dbb552efe0dadc683bdcd9c968cf64843c3253fadef269eb7d32519d954d6e

Contents?: true

Size: 780 Bytes

Versions: 10

Compression:

Stored size: 780 Bytes

Contents

module Merit
  module BadgeRulesMethods
    # Define rule for granting badges
    def grant_on(action, *args, &block)
      options = args.extract_options!

      actions = Array.wrap(action)

      rule = Rule.new
      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[0].split('#')[0]
      rule.block      = block

      actions.each do |action|
        defined_rules[action] ||= []
        defined_rules[action] << rule
      end
    end

    # Currently defined rules
    def defined_rules
      @defined_rules ||= {}
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
merit-1.5.0 lib/merit/rules_badge_methods.rb
merit-1.4.0 lib/merit/rules_badge_methods.rb
merit-1.3.1 lib/merit/rules_badge_methods.rb
merit-1.3.0 lib/merit/rules_badge_methods.rb
merit-1.2.3 lib/merit/rules_badge_methods.rb
merit-1.2.2 lib/merit/rules_badge_methods.rb
merit-1.2.1 lib/merit/rules_badge_methods.rb
merit-1.2.0 lib/merit/rules_badge_methods.rb
merit-1.1.2 lib/merit/rules_badge_methods.rb
merit-1.1.1 lib/merit/rules_badge_methods.rb