Method: Recognition::Models::Redeemable#redeem

Defined in:
lib/recognition/models/redeemable.rb

#redeem(recognizable) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/recognition/models/redeemable.rb', line 53

def redeem recognizable
  # Make sure we have an amount beforehand
  if defined? self.amount
    if self.redeemable? recognizable
      # Call custom validators
      if defined? self.class.redemption_validators
        self.class.redemption_validators.each do |validator|
          # quit if any validator returned false
          if send(validator) == false
            Recognition.log self.class.to_s.downcase.to_sym, "validation error for #{self.class.to_s}##{self.id}: custom validation error"
            return
          end
        end
      end
      # If all went well:
      execute_redemption recognizable.id
    end
  else
    Recognition.log self.class.to_s.downcase.to_sym, "validation error for #{self.class.to_s}##{self.id}: amount is nil"
  end
end