Class ResponsesController
In: app/controllers/responses_controller.rb
Parent: ApplicationController

Methods

create   flag   index   new   question   show  

Included Modules

Systems::PromptStore Constants::Responses Constants::Prompts

Public Instance methods

POST /responses POST /responses.xml

[Source]

    # File app/controllers/responses_controller.rb, line 60
60:   def create
61:     @items_rated = logged_in? ? current_user.responses_count.round : (prompts_shown - 1)
62:     response_time = parse_response_time(params[:response_time])
63:     begin
64:       last = Prompt.find(params[:prompt_id], :include => [:items, :question])
65:       store_response(last, params[:item_id].to_i, last.question.id, response_time)
66:     rescue ActiveRecord::RecordNotFound
67:       # the user voted on a stale prompt, pretend their vote was stored
68:       session[:question_responses] ||= 0
69:       session[:question_responses] += 1
70:     end
71:     # base new question on user's expectation via param
72:     self.fetch_next = nil if params[:second_last] == 'true'
73:     @new_question = (params[:new_question] == 'true')
74:     return unless get_vars(next_prompt) { prompts_left_for_question > 0 ? fetch_prompt : nil }
75:     @percent_wins = Item.win_percents_overall(@prompt.question_id, @prompt.item_ids)
76:     get_stats
77:     render :update do |page|
78:       # all votes count as optimizer hits, remove admin from here after testing?
79:       page << "Google.optimize();" if PRODUCTION && I18n.locale == 'en'
80:       # only when we've seen our second prompt will prompts_shown be < 3
81:       page << "Google.conversion('0R6LCIK1hAEQxNKW9gM');" if @controller.prompts_shown < 3
82:       page << "Google.conversion('D3UMCLa2hAEQxNKW9gM');" if @new_question
83:       display_prompt(params, page)
84:     end
85:   end

[Source]

    # File app/controllers/responses_controller.rb, line 87
87:   def flag
88:     flag_obj(params[:flag])  # we don't check validity
89:     get_vars(next_prompt, nil, false)
90:     render :update do |page|
91:       flash[:notice] = t('flag.success')
92:       page.redirect_to(root_path)
93:     end
94:   end

GET /responses GET /responses.xml

[Source]

    # File app/controllers/responses_controller.rb, line 12
12:   def index
13:     @question = active_question
14:     fetch_user_items
15:     fetch_responses
16:     respond_to do |format|
17:       format.html # index.html.erb
18:       format.xml  { render :xml => @responses }
19:     end
20:   end

GET /responses/new

[Source]

    # File app/controllers/responses_controller.rb, line 54
54:   def new
55:     redirect_to response_path(0)
56:   end

[Source]

    # File app/controllers/responses_controller.rb, line 22
22:   def question
23:     @question = Question.find(params[:question_id])
24:     fetch_responses
25:     render :update do |page|
26:       page[:responses].html render(:partial => 'response', :collection => @responses)
27:     end
28:   end

GET /responses/[id]

[Source]

    # File app/controllers/responses_controller.rb, line 31
31:   def show
32:     id = params[:id].to_i
33:     return unless get_vars(active_prompt, id > 0 && id) { fetch_prompt }
34:     @prompt_js = true
35:     begin
36:       @last = last_prompt && Prompt.find(last_prompt)
37:     rescue ActiveRecord::RecordNotFound
38:       reset_last_prompt
39:     end
40:     session[:response_time] = []
41:     @current_percent_wins = Item.win_percents_overall_array(@prompt.question.id, @prompt.item_ids)
42:     @last_percent_wins = Item.win_percents_overall_array(@last.question.id, @last.item_ids) if @last
43:     if @logged_in
44:       @current_user_email = current_user.email
45:       @rank ||= current_user.get_responses_rank
46:       @items ||= current_user.get_items_count
47:       @items_votes ||= current_user.get_item_responses_count.round
48:     end
49:     @items_rated = @logged_in ? current_user.get_responses_count.round : (prompts_shown - 1)
50:     render :action => 'new'
51:   end

[Validate]