Commit 9c85b57161c818001e5f71e9417d3f312e8e964d

Authored by Luke Baker
1 parent 94247db4

fix spacing in Question.get_optional_information

Showing 1 changed file with 57 additions and 58 deletions   Show diff stats
app/models/question.rb
@@ -141,93 +141,92 @@ class Question < ActiveRecord::Base @@ -141,93 +141,92 @@ class Question < ActiveRecord::Base
141 weights 141 weights
142 end 142 end
143 143
144 - def get_optional_information(params) 144 + def get_optional_information(params)
145 145
146 - return {} if params.nil? 146 + return {} if params.nil?
147 147
148 - result = {}  
149 - visitor_identifier = params[:visitor_identifier]  
150 - current_user = self.site 148 + result = {}
  149 + visitor_identifier = params[:visitor_identifier]
  150 + current_user = self.site
151 151
152 - if params[:with_prompt] 152 + if params[:with_prompt]
153 153
154 - if params[:with_appearance] && visitor_identifier.present?  
155 - visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier) 154 + if params[:with_appearance] && visitor_identifier.present?
  155 + visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier)
156 156
157 - last_appearance = get_first_unanswered_appearance(visitor) 157 + last_appearance = get_first_unanswered_appearance(visitor)
158 158
159 - if last_appearance.nil? 159 + if last_appearance.nil?
160 @prompt = choose_prompt(:algorithm => params[:algorithm]) 160 @prompt = choose_prompt(:algorithm => params[:algorithm])
161 @appearance = current_user.record_appearance(visitor, @prompt) 161 @appearance = current_user.record_appearance(visitor, @prompt)
162 - else  
163 - #only display a new prompt and new appearance if the old prompt has not been voted on  
164 - @appearance = last_appearance 162 + else
  163 + #only display a new prompt and new appearance if the old prompt has not been voted on
  164 + @appearance = last_appearance
165 @prompt= @appearance.prompt 165 @prompt= @appearance.prompt
166 - end 166 + end
167 167
168 - if params[:future_prompts]  
169 - num_future = params[:future_prompts][:number].to_i rescue 1  
170 - num_future.times do |number|  
171 - offset = number + 1  
172 - last_appearance = get_first_unanswered_appearance(visitor, offset)  
173 - if last_appearance.nil?  
174 - @future_prompt = choose_prompt(:algorithm => params[:algorithm])  
175 - @future_appearance = current_user.record_appearance(visitor, @future_prompt)  
176 - else  
177 - @future_appearance = last_appearance  
178 - @future_prompt= @future_appearance.prompt  
179 - end 168 + if params[:future_prompts]
  169 + num_future = params[:future_prompts][:number].to_i rescue 1
  170 + num_future.times do |number|
  171 + offset = number + 1
  172 + last_appearance = get_first_unanswered_appearance(visitor, offset)
  173 + if last_appearance.nil?
  174 + @future_prompt = choose_prompt(:algorithm => params[:algorithm])
  175 + @future_appearance = current_user.record_appearance(visitor, @future_prompt)
  176 + else
  177 + @future_appearance = last_appearance
  178 + @future_prompt= @future_appearance.prompt
  179 + end
  180 +
  181 + result.merge!({"future_appearance_id_#{offset}".to_sym => @future_appearance.lookup})
  182 + result.merge!({"future_prompt_id_#{offset}".to_sym => @future_prompt.id})
  183 +
  184 + ["left", "right"].each do |side|
  185 + ["text", "id"].each do |param|
  186 + choice = (side == "left") ? @future_prompt.left_choice : @future_prompt.right_choice
  187 + param_val = (param == "text") ? choice.data : choice.id
180 188
181 - result.merge!({"future_appearance_id_#{offset}".to_sym => @future_appearance.lookup})  
182 - result.merge!({"future_prompt_id_#{offset}".to_sym => @future_prompt.id}) 189 + result.merge!({"future_#{side}_choice_#{param}_#{offset}".to_sym => param_val})
  190 + end
  191 + end
183 192
184 - ["left", "right"].each do |side|  
185 - ["text", "id"].each do |param|  
186 - choice = (side == "left") ? @future_prompt.left_choice : @future_prompt.right_choice  
187 - param_val = (param == "text") ? choice.data : choice.id  
188 -  
189 - result.merge!({"future_#{side}_choice_#{param}_#{offset}".to_sym => param_val})  
190 end 193 end
191 - end  
192 -  
193 - end  
194 194
195 - end 195 + end
196 196
197 - result.merge!({:appearance_id => @appearance.lookup})  
198 - else  
199 - # throw some error  
200 - end 197 + result.merge!({:appearance_id => @appearance.lookup})
  198 + else
  199 + # throw some error
  200 + end
201 201
202 - if !@prompt  
203 - @prompt = choose_prompt(:algorithm => params[:algorithm])  
204 - end  
205 - result.merge!({:picked_prompt_id => @prompt.id})  
206 - end 202 + if !@prompt
  203 + @prompt = choose_prompt(:algorithm => params[:algorithm])
  204 + end
  205 + result.merge!({:picked_prompt_id => @prompt.id})
  206 + end
207 207
208 - if params[:with_visitor_stats] 208 + if params[:with_visitor_stats]
209 visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier) 209 visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier)
210 result.merge!(:visitor_votes => visitor.votes.count(:conditions => {:question_id => self.id})) 210 result.merge!(:visitor_votes => visitor.votes.count(:conditions => {:question_id => self.id}))
211 result.merge!(:visitor_ideas => visitor.choices.count) 211 result.merge!(:visitor_ideas => visitor.choices.count)
212 - end 212 + end
213 213
214 - # this might get cpu intensive if used too often. If so, store the calculated value in redis  
215 - # and expire after X minutes  
216 - if params[:with_average_votes] 214 + # this might get cpu intensive if used too often. If so, store the calculated value in redis
  215 + # and expire after X minutes
  216 + if params[:with_average_votes]
217 votes_by_visitors = self.votes.count(:group => 'voter_id') 217 votes_by_visitors = self.votes.count(:group => 'voter_id')
218 218
219 if votes_by_visitors.size > 0 219 if votes_by_visitors.size > 0
220 - average = votes_by_visitors.inject(0){|total, (k,v)| total = total + v}.to_f / votes_by_visitors.size.to_f 220 + average = votes_by_visitors.inject(0){|total, (k,v)| total = total + v}.to_f / votes_by_visitors.size.to_f
221 else 221 else
222 - average = 0.0 222 + average = 0.0
223 end 223 end
224 224
225 result.merge!(:average_votes => average.round) # round to 2 decimals 225 result.merge!(:average_votes => average.round) # round to 2 decimals
226 - end  
227 -  
228 - return result 226 + end
229 227
230 - end 228 + return result
  229 + end
231 230
232 #passing precomputed sum saves us a traversal through the array 231 #passing precomputed sum saves us a traversal through the array
233 def normalize!(weighted, sum=nil) 232 def normalize!(weighted, sum=nil)