From e65dbf59bf3aaa0b4bde29ca49ca67f7ad17b5a9 Mon Sep 17 00:00:00 2001 From: Zapata Date: Sat, 29 Jan 2011 22:13:05 +0100 Subject: added preliminary recipient management functionality --- lib/backend/recipients_store.rb | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 lib/backend/recipients_store.rb (limited to 'lib/backend/recipients_store.rb') diff --git a/lib/backend/recipients_store.rb b/lib/backend/recipients_store.rb new file mode 100644 index 0000000..158aabf --- /dev/null +++ b/lib/backend/recipients_store.rb @@ -0,0 +1,79 @@ +module Backend + # a store for the recipients configuration + class RecipientsStore + # Instantiates and stores password + def initialize(aBaseDir = "") + @baseDir = aBaseDir + end + + def addRecipient(aRecipientAddress, aRecipientKey) + @recipients.push(Recipient.new(aRecipientAddress, aRecipientKey)) + end + + def removeRecipient(aRecipientKey) +# read() +# @recipients.push(Recipient.new(aRecipientAddress, aRecipientKey)) +# write() + end + + def getRecipients() + return @recipients + end + + def load() + read() + end + + def save() + write() + end + + private + + def read() + fileName = File.join(@baseDir, "config", "recipients") + file = File.new(fileName, "r") + begin + recipients = [] + + while (line = file.gets) + parts = line.split() + if (parts.length == 2) + recipients.push(Recipient.new(parts[1], parts[0])) + end + end + + @recipients = recipients + rescue => err + throw err + ensure + file.close + end + end + + def write() + fileName = File.join(@baseDir, "config", "recipients") + file = File.new(fileName, "w") + begin + @recipients.each do |recipient| + file.puts("#{recipient.email} #{recipient.keySignature}") + end + rescue => err + throw err + ensure + file.close + end + end + + end + + class Recipient + def initialize(aKeySignature, anEmail) + @keySignature = aKeySignature + @email = anEmail + end + + attr_reader :keySignature + attr_reader :email + end +end -- cgit v1.2.3