class ReferableReward
Public Class Methods
best_reward(acquireable_by)
click to toggle source
# File lib/generators/referable/templates/model/referable_reward.rb, line 9 def self.best_reward(acquireable_by) where(acquireable_by: acquireable_by).order(referrals_required: :desc).first end
zeroth_tier(acquireable_by)
click to toggle source
# File lib/generators/referable/templates/model/referable_reward.rb, line 13 def self.zeroth_tier(acquireable_by) zeroth = find_by(referrals_required: 0, acquireable_by: acquireable_by) return zeroth if zeroth create!(reward: 'none', referrals_required: 0, acquireable_by: acquireable_by) end
Public Instance Methods
next_reward(above: 0)
click to toggle source
# File lib/generators/referable/templates/model/referable_reward.rb, line 19 def next_reward(above: 0) query = self.class .where(acquireable_by: acquireable_by) .where('referrals_required > ?', referrals_required) .where('referrals_required >= ?', above) .order(referrals_required: :asc) .limit(1) query.any? ? query.first : self end
previous_reward(below: 10e5)
click to toggle source
# File lib/generators/referable/templates/model/referable_reward.rb, line 29 def previous_reward(below: 10e5) query = self.class .where(acquireable_by: acquireable_by) .where('referrals_required < ?', referrals_required) .where('referrals_required <= ?', below) .order(referrals_required: :desc) .limit(1) query.any? ? query.first : self end