* Immediately display poll results to poll author * Refactor Poll#loaded_options and add Poll#voted? to improve DRYness
		
			
				
	
	
		
			31 lines
		
	
	
		
			528 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			528 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
class REST::PollSerializer < ActiveModel::Serializer
 | 
						|
  attributes :id, :expires_at, :expired,
 | 
						|
             :multiple, :votes_count
 | 
						|
 | 
						|
  has_many :loaded_options, key: :options
 | 
						|
 | 
						|
  attribute :voted, if: :current_user?
 | 
						|
 | 
						|
  def id
 | 
						|
    object.id.to_s
 | 
						|
  end
 | 
						|
 | 
						|
  def expired
 | 
						|
    object.expired?
 | 
						|
  end
 | 
						|
 | 
						|
  def voted
 | 
						|
    object.voted?(current_user.account)
 | 
						|
  end
 | 
						|
 | 
						|
  def current_user?
 | 
						|
    !current_user.nil?
 | 
						|
  end
 | 
						|
 | 
						|
  class OptionSerializer < ActiveModel::Serializer
 | 
						|
    attributes :title, :votes_count
 | 
						|
  end
 | 
						|
end
 |