CSC/ECE 517 Fall 2016/E1673. Refactor question type.rb

From Expertiza_Wiki
Revision as of 20:29, 28 October 2016 by Ddu3 (talk | contribs)
Jump to navigation Jump to search

E1673. Refactor question type.rb

Reason for Refractor

Some codes are so duplicated and unreadability. It's difficult to make extensions and develop.

Code Changes

text_field.rb
Although it increase the number of classes, the length of function decrease and it's easy to read than before
def view_completed_question(count, answer)
   if self.type == 'TextField' and self.break_before == true
     html = '' + count.to_s + ". " + self.txt + ""
     html += '    '
     html += answer.comments
     html += '

' if Question.exists?(answer.question_id + 1) && Question.find(answer.question_id + 1).break_before == true else html = view_helper(answer) end safe_join([" ".html_safe, " ".html_safe], html.html_safe) end def view_helper(answer) html = self.text html += answer.comments html += '

' html end
text_response.rb
It makes codes more readable. We also choose safe_join instead of html_safe to prevent security risks. However, we must use html_safe to keep the character encoding.
def edit(_count)
   html = edit_1 + edit_2 + edit_3 + edit_4

safe_join(["".html_safe, "".html_safe], html.html_safe) end