Class: FilterChain
- Inherits:
-
Object
- Object
- FilterChain
- Defined in:
- lib/filter/filter_chain.rb
Overview
The filter chain is responsible for deciding which mail to forward and which to drop. The filter chain can consist of one ore more filters each analysing and/or modifing the incoming mail.
Class Method Summary collapse
-
.build_simple_filter_chain(config, charset = "UTF-8") ⇒ Object
Factory method to create a simple filter chaing using a SubjectFilter.
Instance Method Summary collapse
- #<<(filter) ⇒ Object
- #add(filter) ⇒ Object
- #delete(filter) ⇒ Object
-
#initialize(config) ⇒ FilterChain
constructor
A new instance of FilterChain.
-
#passed_filter?(tmail) ⇒ Boolean
Execute each filter, stop of a filter rejects the mail.
Constructor Details
#initialize(config) ⇒ FilterChain
Returns a new instance of FilterChain.
6 7 8 9 |
# File 'lib/filter/filter_chain.rb', line 6 def initialize(config) @filters = [] @config = config end |
Class Method Details
.build_simple_filter_chain(config, charset = "UTF-8") ⇒ Object
Factory method to create a simple filter chaing using a SubjectFilter.
36 37 38 39 40 41 |
# File 'lib/filter/filter_chain.rb', line 36 def self.build_simple_filter_chain(config, charset = "UTF-8") filter_chain = self.new(config) subject_filter_password = config["filter_chain"]["subject_filter"]["password"] filter_chain << SubjectFilter.new(subject_filter_password, charset) return filter_chain end |
Instance Method Details
#<<(filter) ⇒ Object
11 12 13 |
# File 'lib/filter/filter_chain.rb', line 11 def <<(filter) @filters << filter end |
#add(filter) ⇒ Object
15 16 17 |
# File 'lib/filter/filter_chain.rb', line 15 def add(filter) @filters << filter end |
#delete(filter) ⇒ Object
19 20 21 |
# File 'lib/filter/filter_chain.rb', line 19 def delete(filter) @filters.delete(filter) end |
#passed_filter?(tmail) ⇒ Boolean
Execute each filter, stop of a filter rejects the mail
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/filter/filter_chain.rb', line 24 def passed_filter?(tmail) ret = true for filter in @filters do if not filter.passed_filter?(tmail) then ret = false break end end return ret end |