Module: GenerateAnswerKey
- Included in:
- CategoryTextKeyGenerator, LeadingDigitsKeyGenerator
- Defined in:
- lib/generate_answer_key.rb
Overview
Interface for generating a custom answer key
Class Method Summary collapse
-
.decrypt_answer_key(question) ⇒ int
Decrypt answer key.
-
.get_random_key(n = 10) ⇒ string
Generate a random key of length 10 numbers.
-
.get_random_phrase(n = 4) ⇒ string
Generate a random phrase.
-
.get_random_word(n = 7) ⇒ string
Generate a random word.
-
.update_answer_key(question) ⇒ Object
Encrypt answer key.
Class Method Details
.decrypt_answer_key(question) ⇒ int
Decrypt answer key.
24 25 26 |
# File 'lib/generate_answer_key.rb', line 24 def self.decrypt_answer_key(question) raise NoMethodError("decrypt method not implemented") end |
.get_random_key(n = 10) ⇒ string
Generate a random key of length 10 numbers
32 33 34 35 36 37 |
# File 'lib/generate_answer_key.rb', line 32 def self.get_random_key(n = 10) return '' if n.zero? min = 10**n max = 10**(n+1)-1 rand(min..max).to_s[0..n-1] end |
.get_random_phrase(n = 4) ⇒ string
Generate a random phrase
62 63 64 65 66 67 68 |
# File 'lib/generate_answer_key.rb', line 62 def self.get_random_phrase(n = 4) phrase = '' n.times do phrase += (phrase.length == 0 ? '': ' ') + self.get_random_word(rand(7)+3) end phrase end |
.get_random_word(n = 7) ⇒ string
Generate a random word
46 47 48 49 50 51 52 53 |
# File 'lib/generate_answer_key.rb', line 46 def self.get_random_word(n = 7) letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' word = '' n.times do word += letters[rand(52)] end word end |
.update_answer_key(question) ⇒ Object
Encrypt answer key
13 14 15 |
# File 'lib/generate_answer_key.rb', line 13 def self.update_answer_key(question) raise NoMethodError("generate method not implemented") end |