Created
June 21, 2013 02:19
-
-
Save dealingwith/5828402 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class PlayerMove < ActiveRecord::Base | |
module Moves | |
COMMUNITY_REWARDS = %w(desktop-referral-cr desktop-auth-cr desktop-fblike-cr desktop-fblike-cr-temp desktop-fbshare-cr | |
desktop-fbshare-cr-temp desktop-fbshare2-cr desktop-rating-cr desktop-review-cr | |
desktop-tweet-cr desktop-twitterfollow-cr desktop-twitterfollow-cr-temp mobile-fblike-cr | |
desktop-instagram-post-cr desktop-scratchoff-share-cr) | |
LEASE_UP = %w(desktop-fbshare-leaseup lu-fblike-leaseup lu-fbshare-leaseup lu-mobile-fbshare-leaseup | |
lu-referral-friend-share-fb lu-referral-friend-share-tweet lu-referral-friend-vote lu-tweet-leaseup lu-twitterfollow-leaseup) | |
SCRATCHOFF = %w(scratchoff) | |
INITIAL_MOVES = %w(initial_score) | |
LEGACY = %w(twitterfollow googleplus fblike facebookshare desktop-fbshare2 desktop-fbshare) | |
# CATEGORIZED | |
RATINGS = %w(desktop-rating-cr) | |
REVIEWS = %w(desktop-review-cr) | |
SOCIAL_MOVES = %w(desktop-fblike-cr desktop-fblike-cr-temp desktop-fbshare-cr | |
desktop-fbshare-cr-temp desktop-fbshare2-cr desktop-tweet-cr | |
desktop-twitterfollow-cr desktop-twitterfollow-cr-temp | |
mobile-fblike-cr desktop-instagram-post-cr) # desktop-fbshare-leaseup | |
# lu-fblike-leaseup lu-fbshare-leaseup lu-mobile-fbshare-leaseup | |
# lu-referral-friend-share-fb lu-referral-friend-share-tweet lu-tweet-leaseup lu-twitterfollow-leaseup) | |
LIKES = %w(desktop-fblike-cr desktop-fblike-cr-temp mobile-fblike-cr) | |
FB_SHARES = %w(desktop-fbshare-cr desktop-fbshare-cr-temp desktop-fbshare2-cr) | |
end | |
belongs_to :player | |
belongs_to :campaign | |
attr_accessible :score, :move, :campaign_id, :content, :client_id, :sourceIp | |
scope :opinions, where("move='desktop-review-cr' OR (move='desktop-rating-cr' AND CONVERT(content,decimal) >= 3.5)") | |
scope :others, where("move NOT IN ('desktop-review-cr','desktop-rating-cr','initial_score')") | |
scope :for_widget, includes(:player).group(:player_id).limit(50).order("player_moves.created_at") | |
scope :for, lambda {|thing| | |
case thing | |
when Campaign | |
where(:campaign_id => thing.id) | |
when Property | |
where(:campaign_id => thing.campaigns.collect{|c| c.id }) | |
when Player | |
where(:player_id => thing.id) | |
end | |
} | |
scope :ratings, lambda { where(:move => Moves::RATINGS) } | |
scope :reviews, lambda { where(:move => Moves::REVIEWS) } | |
scope :social_moves, lambda { where(:move => Moves::SOCIAL_MOVES) } | |
scope :likes, lambda { where(:move => Moves::LIKES) } | |
scope :facebook_shares, lambda { where(:move => Moves::FB_SHARES) } | |
def t_move | |
I18n.t(move, :scope => :move_types) | |
end | |
def self.widget_json | |
{:include => {:player => {:only => :uid, :methods => :shortname}}, :only => [:content, :created_at, :move], :methods => [:t_move]} | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment