diff options
author | Ola Bini <ola.bini@gmail.com> | 2014-07-31 19:35:40 -0300 |
---|---|---|
committer | Ola Bini <ola.bini@gmail.com> | 2014-07-31 19:35:40 -0300 |
commit | e54e5ee931b3991cbb5e427e7e5d27b3f6c75e6e (patch) | |
tree | 1e0da33d22874c0ea5576818fe45958611ebda29 /fake-service/lib/smail/contact.rb | |
parent | 04cf441c5ae18400c6b4865b0b37a71718dc9d46 (diff) |
Add fake-service
Diffstat (limited to 'fake-service/lib/smail/contact.rb')
-rw-r--r-- | fake-service/lib/smail/contact.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/fake-service/lib/smail/contact.rb b/fake-service/lib/smail/contact.rb new file mode 100644 index 00000000..a07f0f84 --- /dev/null +++ b/fake-service/lib/smail/contact.rb @@ -0,0 +1,26 @@ + +module Smail + class Contact < Struct.new(:ident, :name, :addresses, :mails_received, :mails_sent, :last_received, :last_sent, :prev, :next) + include Comparable + + def to_json(*args) + { + ident: self.ident, + name: self.name, + addresses: Array(self.addresses), + mails_received: self.mails_received || 0, + mails_sent: self.mails_sent || 0, + last_received: self.last_received, + last_sent: self.last_sent + }.to_json(*args) + end + + def comparison_value + [(self.mails_received || 0) + (self.mails_sent || 0) * 0.8, self.last_received, self.last_sent] + end + + def <=>(other) + other.comparison_value <=> self.comparison_value + end + end +end |