Class: Sieve::FilterSet
- Inherits:
-
Object
- Object
- Sieve::FilterSet
- Defined in:
- lib/sieve-parser/filterset.rb
Instance Attribute Summary collapse
-
#auto_require ⇒ Object
Returns the value of attribute auto_require.
-
#text_sieve ⇒ Object
Returns the value of attribute text_sieve.
Instance Method Summary collapse
-
#add_filter(filter) ⇒ Object
Add filter to filters of filterset.
-
#add_require(req) ⇒ Object
Add require to requires of filterset.
-
#filter_index_by_name(name) ⇒ Sieve::Filter
Return filter index by name.
-
#filters ⇒ array
Return all filters of script.
-
#find_filter_by_name(name) ⇒ integer
Return filter by name.
-
#initialize(text_sieve = nil) ⇒ FilterSet
constructor
Create FilterSet.
-
#remove_filter_by_name(name) ⇒ Array
Remove filter by name.
-
#requires ⇒ array
Requires inside the script.
-
#to_s ⇒ string
Return a text of filterset.
-
#where ⇒ Array<Sieve::Filter>
Return a array of filters by select with all given params.
Constructor Details
#initialize(text_sieve = nil) ⇒ FilterSet
Create FilterSet
27 28 29 30 31 32 33 |
# File 'lib/sieve-parser/filterset.rb', line 27 def initialize(text_sieve=nil) @text_sieve = text_sieve @requires = [] @filters = [] @auto_require = true parse unless @text_sieve.nil? end |
Instance Attribute Details
#auto_require ⇒ Object
Returns the value of attribute auto_require.
22 23 24 |
# File 'lib/sieve-parser/filterset.rb', line 22 def auto_require @auto_require end |
#text_sieve ⇒ Object
Returns the value of attribute text_sieve.
22 23 24 |
# File 'lib/sieve-parser/filterset.rb', line 22 def text_sieve @text_sieve end |
Instance Method Details
#add_filter(filter) ⇒ Object
Add filter to filters of filterset
67 68 69 70 71 |
# File 'lib/sieve-parser/filterset.rb', line 67 def add_filter(filter) raise Exception.new("The param is not a Filter!") unless filter.class.to_s == "Sieve::Filter" load_requires(filter) if @auto_require == true @filters << filter end |
#add_require(req) ⇒ Object
Add require to requires of filterset
82 83 84 85 86 87 |
# File 'lib/sieve-parser/filterset.rb', line 82 def add_require(req) #TODO: Implement config of requires allowed raise Exception.new("Is not a require valid!") unless req =~ /\S+/ @requires << req @requires.uniq! end |
#filter_index_by_name(name) ⇒ Sieve::Filter
Return filter index by name
51 52 53 54 55 |
# File 'lib/sieve-parser/filterset.rb', line 51 def filter_index_by_name(name) key = @filters.index{|f| f.name==name} raise SieveErrors::FilterNotFound unless key key end |
#filters ⇒ array
Return all filters of script.
37 38 39 |
# File 'lib/sieve-parser/filterset.rb', line 37 def filters @filters end |
#find_filter_by_name(name) ⇒ integer
Return filter by name
44 45 46 |
# File 'lib/sieve-parser/filterset.rb', line 44 def find_filter_by_name(name) @filters[filter_index_by_name(name)] end |
#remove_filter_by_name(name) ⇒ Array
Remove filter by name
60 61 62 63 |
# File 'lib/sieve-parser/filterset.rb', line 60 def remove_filter_by_name(name) filter_index_by_name(name) @filters.delete_if {|f| f.name == name } end |
#requires ⇒ array
Requires inside the script
75 76 77 78 |
# File 'lib/sieve-parser/filterset.rb', line 75 def requires @requires.uniq! @requires end |
#to_s ⇒ string
Return a text of filterset
91 92 93 94 95 96 |
# File 'lib/sieve-parser/filterset.rb', line 91 def to_s text = "" text = "require [\"#{requires.join('","')}\"];\n" if @requires.count > 0 text += filters.join("") if filters.count > 0 text end |
#where ⇒ Array<Sieve::Filter>
The :text only have text to search
Return a array of filters by select with all given params
102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/sieve-parser/filterset.rb', line 102 def where entries =[] @filters.each do |filter| cond = false cond = filter.name == args[:name] unless args[:name].nil? cond = filter.disabled? == args[:disabled] unless args[:disabled].nil? cond = filter.to_s =~ /#{args[:text]}/ unless args[:text].nil? entries << filter if cond end entries end |