diff options
Diffstat (limited to 'fake-service/lib/smail/combined_observer.rb')
-rw-r--r-- | fake-service/lib/smail/combined_observer.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/fake-service/lib/smail/combined_observer.rb b/fake-service/lib/smail/combined_observer.rb new file mode 100644 index 00000000..a3e920ca --- /dev/null +++ b/fake-service/lib/smail/combined_observer.rb @@ -0,0 +1,23 @@ +module Smail + class CombinedObserver + def initialize(*observers) + @observers = observers + end + + def <<(observer) + @observers << observer + end + + def mail_added(mail) + @observers.each { |o| o.mail_added(mail) } + end + + def mail_removed(mail) + @observers.each { |o| o.mail_removed(mail) } + end + + def mail_updated(before, after) + @observers.each { |o| o.mail_updated(before, after) } + end + end +end |