aboutsummaryrefslogtreecommitdiff
path: root/lib/backend/recipients_store.rb
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2011-01-29 19:57:58 -0200
committerSilvio Rhatto <rhatto@riseup.net>2011-01-29 19:57:58 -0200
commit4d4df2e46f9fde08ca73fe809f7e87379602f78f (patch)
tree545014212f32968589bef827f4b94df0b3510b96 /lib/backend/recipients_store.rb
parent5d0ae3722c6889fff8c00018066662260a71f3e2 (diff)
parentce02d9f01ca366be945caf286c0b77f8eaab24d1 (diff)
downloadkeyringer-4d4df2e46f9fde08ca73fe809f7e87379602f78f.tar.gz
keyringer-4d4df2e46f9fde08ca73fe809f7e87379602f78f.tar.bz2
Merge commit 'origin/ruby' into ruby
Diffstat (limited to 'lib/backend/recipients_store.rb')
-rw-r--r--lib/backend/recipients_store.rb79
1 files changed, 79 insertions, 0 deletions
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