module TreasureHunt::Achievement::InstanceMethods
Public Instance Methods
fill_points()
click to toggle source
# File lib/treasure_hunt/achievement.rb, line 28 def fill_points self.points = self.reward.points unless self.points end
find_all_recently_achieved()
click to toggle source
# File lib/treasure_hunt/achievement.rb, line 54 def find_all_recently_achieved limit = self.reward.limit rescue 1.0/0 # Yep, that's Infinity find_all_similar_and_younger.limit(limit) end
find_all_similar()
click to toggle source
# File lib/treasure_hunt/achievement.rb, line 41 def find_all_similar ret = self.class.where(:user_id => self.user_id, :reward_id => self.reward_id).order('updated_at DESC') ret = ret.where('id != ?', self.id) if self.id ret end
find_all_similar_and_younger()
click to toggle source
# File lib/treasure_hunt/achievement.rb, line 48 def find_all_similar_and_younger age = Time.now - self.reward.every rescue 0 find_all_similar.where('updated_at > ?', age) end
reward_cannot_be_achieved_above_limits()
click to toggle source
TODO refactoring to Validator
# File lib/treasure_hunt/achievement.rb, line 33 def reward_cannot_be_achieved_above_limits limit = self.reward.limit rescue 1.0/0 if self.find_all_similar_and_younger.size >= limit errors.add(:reward, "can't achieve reward at current time") end end