Module: Ventable::Event::ClassMethods
- Defined in:
- lib/ventable/event.rb
Instance Method Summary collapse
- #configure(&block) ⇒ Object
- #group(name, &block) ⇒ Object
- #notifies(*observer_list, **options, &block) ⇒ Object
Instance Method Details
#configure(&block) ⇒ Object
56 57 58 |
# File 'lib/ventable/event.rb', line 56 def configure(&block) class_eval(&block) end |
#group(name, &block) ⇒ Object
72 73 74 75 76 77 |
# File 'lib/ventable/event.rb', line 72 def group(name, &block) self.observers << { name: name, around_block: block, observers: Set.new } end |
#notifies(*observer_list, **options, &block) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/ventable/event.rb', line 60 def notifies(*observer_list, **, &block) observer_set = self.observers if [:inside] observer_entry = self.find_observer_group([:inside]) raise Ventable::Error.new("No group with name #{options[:inside]} found.") if observer_entry.nil? observer_set = observer_entry[:observers] end raise Ventable::Error.new("found nil observer in params #{observer_list.inspect}") if observer_list.any?(&:nil?) observer_list.compact.each { |o| observer_set << o } unless observer_list.empty? observer_set << block if block end |