summaryrefslogtreecommitdiff
path: root/fake-service/lib/smail/contact.rb
diff options
context:
space:
mode:
authorOla Bini <ola.bini@gmail.com>2014-07-31 19:35:40 -0300
committerOla Bini <ola.bini@gmail.com>2014-07-31 19:35:40 -0300
commite54e5ee931b3991cbb5e427e7e5d27b3f6c75e6e (patch)
tree1e0da33d22874c0ea5576818fe45958611ebda29 /fake-service/lib/smail/contact.rb
parent04cf441c5ae18400c6b4865b0b37a71718dc9d46 (diff)
Add fake-service
Diffstat (limited to 'fake-service/lib/smail/contact.rb')
-rw-r--r--fake-service/lib/smail/contact.rb26
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