Class ApplicationController
In: app/controllers/application_controller.rb
Parent: ActionController::Base

Filters added to this controller apply to all controllers in the application. Likewise, all the methods added will be available for all controllers.

Methods

Included Modules

Systems::Visit

Public Instance methods

[Source]

    # File app/controllers/application_controller.rb, line 70
70:   def current_user_id!
71:     if user_set?
72:       id = user_creds[:id]
73:       if id.nil?
74:         user = User.first(:conditions => { :email => user_creds[:email], :encoded_password => user_creds[:encoded_pass] })
75:         session[:user][:id] = user.id
76:       else
77:         id
78:       end
79:     end
80:   end

[Source]

    # File app/controllers/application_controller.rb, line 90
90:   def named_url_for_question(question)
91:     "#{url_prefix}#{question.name}"
92:   end

[Source]

    # File app/controllers/application_controller.rb, line 94
94:   def parse_items(items)
95:     if items
96:       sanitizer = HTML::FullSanitizer.new
97:       items.split("\n").reject(&:empty?).map { |el| sanitizer.sanitize(el) }
98:     end
99:   end

[Source]

    # File app/controllers/application_controller.rb, line 82
82:   def percentage(num, denom)
83:      denom.zero? ? "0%" : "#{(100 * (num.to_f / denom)).round}%"
84:   end

[Source]

    # File app/controllers/application_controller.rb, line 52
52:   def questions(question_id = nil)
53:     question_id ? set_pairwise_from_question_id(question_id) : set_pairwise_user
54:     pairwise_qs = Pairwise.list_questions
55:     Question.all(
56:       :conditions => { :pairwise_id => pairwise_qs.transpose.first }
57:     ).inject([]) do |array, question|
58:       array << (pairwise_qs.assoc(question.pairwise_id.to_s) << question.active << question.id)
59:     end
60:   end

[Source]

    # File app/controllers/application_controller.rb, line 33
33:   def require_user_set
34:     unless user_set?
35:       redirect_to root_path
36:       flash[:error] = t('error.please_login_to_access_this_resource')
37:     end
38:     @header = true
39:   end

[Source]

    # File app/controllers/application_controller.rb, line 41
41:   def require_user_unset
42:     if user_set?
43:       redirect_to root_path
44:       flash[:error] = t('error.you_already_have_an_account')
45:     end
46:   end

[Source]

    # File app/controllers/application_controller.rb, line 21
21:   def reset_user
22:     session[:user] = nil
23:   end

[Source]

    # File app/controllers/application_controller.rb, line 86
86:   def second_nav
87:     @second_nav = true
88:   end

[Source]

    # File app/controllers/application_controller.rb, line 25
25:   def set_user(email, password)
26:     session[:user] = { :email => email, :password => password, :encoded_pass => Base64.encode64(password) }
27:   end

[Source]

    # File app/controllers/application_controller.rb, line 15
15:   def set_vars
16:     if user_set?
17:       @login = user_creds[:email]
18:     end
19:   end

[Source]

    # File app/controllers/application_controller.rb, line 62
62:   def user_account?
63:     if user_set?
64:       !User.first(:conditions => { :email => user_creds[:email], :encoded_password => user_creds[:encoded_pass] }).nil?
65:     else
66:       false
67:     end
68:   end

[Source]

    # File app/controllers/application_controller.rb, line 48
48:   def user_creds
49:     session[:user]
50:   end

[Source]

    # File app/controllers/application_controller.rb, line 29
29:   def user_set?
30:     user_creds && user_creds.values.all? { |el| !el.nil? && !el.to_s.empty? }
31:   end

Protected Instance methods

[Source]

     # File app/controllers/application_controller.rb, line 107
107:     def active_items(question_id, algo = nil, limit = nil)
108:       items = Pairwise.list_items(question_id, algo, true)
109:       items = items.reject { |el| el[2].to_i.zero? }
110:       limit ? items.first(limit) : items
111:     end

[Source]

     # File app/controllers/application_controller.rb, line 149
149:     def fill_question
150:       set_pairwise_from_question_id(@question_id)
151:       @question_internal = Question.first(:conditions => { :pairwise_id => @question_id })
152:       @question_id, @question, @items_count, @votes_count = Pairwise.get_question(@question_id)
153:     end

[Source]

     # File app/controllers/application_controller.rb, line 127
127:     def ip_percents(votes, percent = true)
128:       ret = votes.inject({}) do |hash, vote|
129:         if ip = vote[3]
130:           unless hash[ip]
131:             geo = GeoIP.location(ip)
132:             if geo
133:               loc = geo[:city]
134:               loc = geo[:region] if loc && loc.empty?
135:               loc = geo[:county_name] if loc && loc.empty?
136:               hash[ip] = [geo[:latitude], geo[:longitude], loc, 0, 0]
137:             end
138:           end
139:           if hash[ip]
140:             col = vote.last.nil? ? 3 : 4
141:             hash[ip][col] += 1
142:           end
143:         end
144:         hash
145:       end
146:       ret.values.map { |el| el << (el.pop + el.pop) }
147:     end

[Source]

     # File app/controllers/application_controller.rb, line 167
167:     def parse_question_id_from_name
168:       @name = params[:name]
169:       @name = @name.is_a?(Array) ? @name.first.downcase : @name.downcase if @name
170:       @name && Question.first(:conditions => { :name => @name }).pairwise_id
171:     end

[Source]

     # File app/controllers/application_controller.rb, line 155
155:     def require_question_id
156:       if (@question_id = params[:question_id]).nil?
157:         redirect_to root_path
158:         return
159:       end
160:     end

[Source]

     # File app/controllers/application_controller.rb, line 162
162:     def require_question_id_or_name
163:       @question_id = params[:question_id] || parse_question_id_from_name
164:       @question_id ? fill_question : redirect_to(root_path)
165:     end

[Source]

     # File app/controllers/application_controller.rb, line 122
122:     def set_pairwise_from_question_id(id)
123:       user = user_from_question_id(id)
124:       set_pairwise_user(user.email, user.decoded_password)
125:     end

[Source]

     # File app/controllers/application_controller.rb, line 113
113:     def set_pairwise_user(email = nil, pass = nil)
114:       pairwise_params = PAIRWISE_PARAMS.merge(:user => email || user_creds[:email], :pass => pass || user_creds[:password])
115:       Pairwise.server(pairwise_params)
116:     end

[Source]

     # File app/controllers/application_controller.rb, line 102
102:     def url_prefix
103:       "#{request.env['rack.url_scheme']}://#{request.env['HTTP_HOST']}/"
104:     end

[Source]

     # File app/controllers/application_controller.rb, line 118
118:     def user_from_question_id(id)
119:       Question.first(:conditions => { :pairwise_id => id }).user
120:     end

[Validate]