]> git.cworth.org Git - sup/blob - lib/sup/contact.rb
bug fix: use default accounts' sendmail if no immediate from: account
[sup] / lib / sup / contact.rb
1 module Redwood
2
3 class ContactManager
4   include Singleton
5
6   def initialize fn
7     @fn = fn
8     @people = {}
9
10     if File.exists? fn
11       IO.foreach(fn) do |l|
12         l =~ /^(\S+): (.*)$/ or raise "can't parse #{fn} line #{l.inspect}"
13         aalias, addr = $1, $2
14         @people[aalias] = Person.for addr
15       end
16     end
17
18     self.class.i_am_the_instance self
19   end
20
21   def contacts; @people; end
22   def set_contact person, aalias
23     oldentry = @people.find { |a, p| p == person }
24     @people.delete oldentry.first if oldentry
25     @people[aalias] = person
26   end
27   def drop_contact person; @people.delete person; end
28   def delete t; @people.delete t; end
29   def resolve aalias; @people[aalias]; end
30
31   def save
32     File.open(@fn, "w") do |f|
33       @people.keys.sort.each do |aalias|
34         f.puts "#{aalias}: #{@people[aalias].full_address}"
35       end
36     end
37   end
38 end
39
40 end