Class: Moory::Filter
- Inherits:
-
Logistic::Unit
- Object
- Logistic::Unit
- Moory::Filter
- Defined in:
- lib/moory/filter.rb
Constant Summary collapse
- IGNORE =
[' ', "\t", "\n"]
- DEFAULT_CONSUMER =
$stdout.method(:puts)
- IGNORE_FOREIGN =
proc { |c| "Warning! Ignoring unknown character: #{c}" }
Instance Attribute Summary
Attributes inherited from Logistic::Unit
Attributes included from Efferent
Attributes included from Afferent
Instance Method Summary collapse
- #configure(rules) ⇒ Object
-
#initialize(rules:, consumer: DEFAULT_CONSUMER, quarantine: IGNORE_FOREIGN) ⇒ Filter
constructor
A new instance of Filter.
- #issue(stimulus) ⇒ Object
- #produce(output) ⇒ Object
Methods inherited from Logistic::Unit
Methods included from Afferent
Constructor Details
#initialize(rules:, consumer: DEFAULT_CONSUMER, quarantine: IGNORE_FOREIGN) ⇒ Filter
Returns a new instance of Filter.
7 8 9 10 11 12 |
# File 'lib/moory/filter.rb', line 7 def initialize(rules:, consumer:DEFAULT_CONSUMER, quarantine:IGNORE_FOREIGN) @buffer = "" @consumer = consumer @quarantine = quarantine super(rules: rules, quarantine:quarantine) end |
Instance Method Details
#configure(rules) ⇒ Object
14 15 16 17 |
# File 'lib/moory/filter.rb', line 14 def configure(rules) super repertoire.learn(name: 'produce', item: method(:produce)) end |
#issue(stimulus) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/moory/filter.rb', line 26 def issue(stimulus) return if IGNORE.include?(stimulus) @buffer << stimulus super end |
#produce(output) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/moory/filter.rb', line 19 def produce(output) @consumer.call( @buffer ) @buffer = "" end |