Class: CryptKeeper

Inherits:
Object show all
Defined in:
lib/quiz1/t/solutions/Jim Menard/solitaire_cypher.rb

Instance Method Summary collapse

Constructor Details

#initialize(deck) ⇒ CryptKeeper

Returns a new instance of CryptKeeper.



137
138
139
# File 'lib/quiz1/t/solutions/Jim Menard/solitaire_cypher.rb', line 137

def initialize(deck)
	@keyed_deck = deck
end

Instance Method Details

#crypto_each(str) ⇒ Object



177
178
179
180
# File 'lib/quiz1/t/solutions/Jim Menard/solitaire_cypher.rb', line 177

def crypto_each(str)
	@deck = @keyed_deck.dup
	str.split(//).each { | c | yield c }
end

#decrypt(str) ⇒ Object



141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/quiz1/t/solutions/Jim Menard/solitaire_cypher.rb', line 141

def decrypt(str)
	@deck = @keyed_deck.dup
	answer = ""
	str.split(//).each { | c |
 if c == ' '
		answer << ' '
		next
 end

 msg_num = Card.chr_to_value(c)
 key = @deck.next_keystream
 diff = msg_num - key
 diff += 26 if diff < 1
 answer << Card.value_to_chr(diff)
	}
	answer
end

#encrypt(str) ⇒ Object



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# File 'lib/quiz1/t/solutions/Jim Menard/solitaire_cypher.rb', line 159

def encrypt(str)
	@deck = @keyed_deck.dup
	answer = ''
	str.split(//).each { | c |
 if c == ' '
		answer << ' '
		next
 end

 msg_num = Card.chr_to_value(c)
 key = @deck.next_keystream
 sum = msg_num + key
 sum -= 26 if sum > 26
 answer << Card.value_to_chr(sum)
	}
	answer
end