module Humanizer
Constants
- VERSION
Attributes
humanizer_answer[RW]
humanizer_question_id[W]
Public Class Methods
included(base)
click to toggle source
# File lib/humanizer.rb, line 3 def self.included(base) base.extend(ClassMethods) end
Public Instance Methods
change_humanizer_question(current=nil)
click to toggle source
# File lib/humanizer.rb, line 18 def change_humanizer_question(current=nil) @humanizer_question_ids = nil if humanizer_question_ids.compact.count == 1 humanizer_question_ids.delete(current) if current @humanizer_question_id = random_humanizer_question_id end
humanizer_correct_answer?()
click to toggle source
# File lib/humanizer.rb, line 24 def humanizer_correct_answer? humanizer_answer && humanizer_answers_for_id(humanizer_question_id).include?(humanizer_answer.mb_chars.downcase.strip) end
humanizer_question()
click to toggle source
# File lib/humanizer.rb, line 10 def humanizer_question humanizer_questions[humanizer_question_id.to_i]["question"] end
humanizer_question_id()
click to toggle source
# File lib/humanizer.rb, line 14 def humanizer_question_id (@humanizer_question_id ||= random_humanizer_question_id).to_i end
Private Instance Methods
humanizer_answers_for_id(id)
click to toggle source
# File lib/humanizer.rb, line 54 def humanizer_answers_for_id(id) question = humanizer_questions[id.to_i] return [] unless question Array(question["answer"] || question["answers"]).map { |a| a.to_s.mb_chars.downcase } end
humanizer_check_answer()
click to toggle source
# File lib/humanizer.rb, line 62 def humanizer_check_answer errors.add(:humanizer_answer, I18n.translate("humanizer.validation.error")) unless humanizer_correct_answer? end
humanizer_question_ids()
click to toggle source
# File lib/humanizer.rb, line 46 def humanizer_question_ids @humanizer_question_ids ||= (0...humanizer_questions.count).to_a end
humanizer_questions()
click to toggle source
# File lib/humanizer.rb, line 30 def humanizer_questions @humanizer_questions ||= begin questions = I18n.translate!("humanizer.questions") # Poor man's HashWithIndifferentAccess questions.map do |question| question.default_proc = proc do |h, k| case k when String then sym = k.to_sym; h[sym] if h.key?(sym) when Symbol then str = k.to_s; h[str] if h.key?(str) end end end questions end end
random_humanizer_question_id()
click to toggle source
# File lib/humanizer.rb, line 50 def random_humanizer_question_id humanizer_question_ids.sample end