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

Class Method Details

.decrypt_answer_key(question) ⇒ int

Decrypt answer key.

Parameters:

  • question (hash)

Returns:

  • (int)

    index of the correct answer



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

Returns:

  • (string)

    random key



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

Parameters:

  • n (integer) (defaults to: 4)

    number of words

Returns:

  • (string)

    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

Parameters:

  • n (int) (defaults to: 7)

    specify length of word

Returns:

  • (string)

    generated 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

Parameters:

  • question (hash)


13
14
15
# File 'lib/generate_answer_key.rb', line 13

def self.update_answer_key(question)
	raise NoMethodError("generate method not implemented")
end