class ImapFilter::DSL::Filter
Constants
- DIRECTIVES
- MARKS
- OPS
Attributes
mbox[RW]
Public Class Methods
new(name, mbox, directives=[], &block)
click to toggle source
note that directives can be either a hash or a single symbol
Calls superclass method
ImapFilter::DSL::Dsl::new
# File lib/imap-filter/dsl.rb, line 296 def initialize(name, mbox, directives=[], &block) super(name) @mbox = mbox @directives = massage directives @actions = [] instance_eval &block _filters[name] = self end
Public Instance Methods
all()
click to toggle source
# File lib/imap-filter/dsl.rb, line 219 def all directives << 'ALL' end
answered()
click to toggle source
# File lib/imap-filter/dsl.rb, line 223 def answered directives << 'ANSWERED' end
bcc(s)
click to toggle source
# File lib/imap-filter/dsl.rb, line 168 def bcc s directives << 'BCC' << s end
before(d)
click to toggle source
# File lib/imap-filter/dsl.rb, line 156 def before d directives << 'BEFORE' << d end
body(s)
click to toggle source
# File lib/imap-filter/dsl.rb, line 160 def body s directives << 'BODY'<< s end
cc(s)
click to toggle source
# File lib/imap-filter/dsl.rb, line 164 def cc s directives << 'CC' << s end
copy(to_mbox)
click to toggle source
# File lib/imap-filter/dsl.rb, line 130 def copy to_mbox @actions << [:copy, to_mbox] end
Also aliased as: cp
delete()
click to toggle source
# File lib/imap-filter/dsl.rb, line 135 def delete @actions << [:delete] end
deleted()
click to toggle source
# File lib/imap-filter/dsl.rb, line 231 def deleted directives << 'DELETED' end
draft()
click to toggle source
# File lib/imap-filter/dsl.rb, line 239 def draft directives << 'DRAFT' end
flagged()
click to toggle source
# File lib/imap-filter/dsl.rb, line 247 def flagged directives << 'FLAGGED' end
from(s)
click to toggle source
# File lib/imap-filter/dsl.rb, line 172 def from s directives << 'FROM' << s end
keyword(key)
click to toggle source
# File lib/imap-filter/dsl.rb, line 265 def keyword key directives << 'KEYWORD' << key end
list(*a, **h)
click to toggle source
# File lib/imap-filter/dsl.rb, line 121 def list *a, **h @actions << [:list, a, h] end
mark(*flags, custom: false)
click to toggle source
# File lib/imap-filter/dsl.rb, line 139 def mark *flags, custom: false flags.each do |f| raise "Illegal flag #{f}" unless MARKS.member? f end unless custom @actions << [:mark] + flags.map{ |f| MARKS[f] || f } end
Also aliased as: store
massage(directives)
click to toggle source
# File lib/imap-filter/dsl.rb, line 276 def massage directives if directives.is_a?(Hash) directives.map{ |k, v| unless v.is_a? Array [k.to_s.upcase, v] else ['OR', v.map{ |va| [k.to_s.upcase, va] }].flatten end }.flatten elsif directives.is_a?(Symbol) DIRECTIVES[directives] else directives end end
move(to_mbox)
click to toggle source
# File lib/imap-filter/dsl.rb, line 125 def move to_mbox @actions << [:move, to_mbox] end
Also aliased as: mv
on(d)
click to toggle source
# File lib/imap-filter/dsl.rb, line 183 def on d directives << 'ON' << d end
op(*a)
click to toggle source
# File lib/imap-filter/dsl.rb, line 176 def op *a a.each { |x| raise "illegal operator #{x}" unless OPS.member? x directives << x.to_s.upcase } end
search(&block)
click to toggle source
# File lib/imap-filter/dsl.rb, line 155 def search &block def before d directives << 'BEFORE' << d end def body s directives << 'BODY'<< s end def cc s directives << 'CC' << s end def bcc s directives << 'BCC' << s end def from s directives << 'FROM' << s end def op *a a.each { |x| raise "illegal operator #{x}" unless OPS.member? x directives << x.to_s.upcase } end def on d directives << 'ON' << d end def since d directives << 'SINCE' << d end def senton d directives << 'SENTON' << d end def sentsince d directives << 'SENTSINCE' << d end def sentbefore d directives << 'SENTBEFORE' << d end def smaller n directives << 'SMALLER' << n end def subject s directives << 'SUBJECT' << s end def text s directives << 'TEXT' << s end def to s directives << 'TO' << s end def all directives << 'ALL' end def answered directives << 'ANSWERED' end def unanswered directives << 'UNANSWERED' end def deleted directives << 'DELETED' end def undeleted directives << 'UNDELETED' end def draft directives << 'DRAFT' end def undraft directives << 'UNDRAFT' end def flagged directives << 'FLAGGED' end def unflagged directives << 'UNFLAGGED' end def seen directives << 'SEEN' end alias red seen def unseen directives << 'UNSEEN' end alias unread unseen def keyword key directives << 'KEYWORD' << key end def unkeyword key directives << 'UNKEYWORD' << key end instance_eval &block end
seen()
click to toggle source
# File lib/imap-filter/dsl.rb, line 255 def seen directives << 'SEEN' end
sentbefore(d)
click to toggle source
# File lib/imap-filter/dsl.rb, line 199 def sentbefore d directives << 'SENTBEFORE' << d end
senton(d)
click to toggle source
# File lib/imap-filter/dsl.rb, line 191 def senton d directives << 'SENTON' << d end
sentsince(d)
click to toggle source
# File lib/imap-filter/dsl.rb, line 195 def sentsince d directives << 'SENTSINCE' << d end
since(d)
click to toggle source
# File lib/imap-filter/dsl.rb, line 187 def since d directives << 'SINCE' << d end
smaller(n)
click to toggle source
# File lib/imap-filter/dsl.rb, line 203 def smaller n directives << 'SMALLER' << n end
subject(s)
click to toggle source
# File lib/imap-filter/dsl.rb, line 207 def subject s directives << 'SUBJECT' << s end
text(s)
click to toggle source
# File lib/imap-filter/dsl.rb, line 211 def text s directives << 'TEXT' << s end
to(s)
click to toggle source
# File lib/imap-filter/dsl.rb, line 215 def to s directives << 'TO' << s end
to_s()
click to toggle source
# File lib/imap-filter/dsl.rb, line 305 def to_s "MBOX #{mbox} DIRECTIVES #{directives}" end
unanswered()
click to toggle source
# File lib/imap-filter/dsl.rb, line 227 def unanswered directives << 'UNANSWERED' end
undeleted()
click to toggle source
# File lib/imap-filter/dsl.rb, line 235 def undeleted directives << 'UNDELETED' end
undraft()
click to toggle source
# File lib/imap-filter/dsl.rb, line 243 def undraft directives << 'UNDRAFT' end
unflagged()
click to toggle source
# File lib/imap-filter/dsl.rb, line 251 def unflagged directives << 'UNFLAGGED' end
unkeyword(key)
click to toggle source
# File lib/imap-filter/dsl.rb, line 269 def unkeyword key directives << 'UNKEYWORD' << key end
unmark(*flags, custom: false)
click to toggle source
# File lib/imap-filter/dsl.rb, line 147 def unmark *flags, custom: false flags.each do |f| raise "Illegal flag #{f}" unless MARKS.member? f end unless custom @actions << [:unmark] + flags.map{ |f| MARKS[f] || f } end
Also aliased as: unstore
unseen()
click to toggle source
# File lib/imap-filter/dsl.rb, line 260 def unseen directives << 'UNSEEN' end