diff options
Diffstat (limited to 'fake-service/lib/pixelated_service/mail_scope_filter.rb')
-rw-r--r-- | fake-service/lib/pixelated_service/mail_scope_filter.rb | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/fake-service/lib/pixelated_service/mail_scope_filter.rb b/fake-service/lib/pixelated_service/mail_scope_filter.rb deleted file mode 100644 index dae6d99e..00000000 --- a/fake-service/lib/pixelated_service/mail_scope_filter.rb +++ /dev/null @@ -1,70 +0,0 @@ -module PixelatedService - module MailScopeFilter - include Enumerable - - def initialize(c) - @c = c - end - - def each - @c.each do |m| - yield m if retain?(m) - end - end - - class Default - include MailScopeFilter - - def initialize(c) - super - @tags = [Tags.get('sent'), Tags.get('trash'), Tags.get('drafts')] - end - - def retain?(m) - !(@tags.any? { |t| m.is_tagged?(t) }) - end - - class << self - def +(o) - o - end - end - end - - class All - include MailScopeFilter - - def initialize(c) - super - @t = Tags.get('trash') - end - - def retain?(m) - !m.is_tagged?(@t) - end - - class << self - def +(o) - All - end - end - end - - def self.tagged_with(n) - t = Tags.get(n) - c = Class.new - c.send :include, MailScopeFilter - c.send :define_method, :retain? do |m| - m.is_tagged?(t) - end - c.class.send :define_method, :+ do |o| - All === o ? All : self - end - c - end - - Trash = tagged_with('trash') - Sent = tagged_with('sent') - Drafts = tagged_with('drafts') - end -end |