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
59 60 61 |
# File 'lib/ventable/event.rb', line 59 def configure(&block) class_eval(&block) end |
#group(name, &block) ⇒ Object
77 78 79 80 81 |
# File 'lib/ventable/event.rb', line 77 def group(name, &block) observers << { name: name, around_block: block, observers: Set.new } end |
#notifies(*observer_list, **options, &block) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/ventable/event.rb', line 63 def notifies(*observer_list, **, &block) observer_set = observers if [:inside] observer_entry = find_observer_group([:inside]) raise Ventable::Error, "No group with name #{[:inside]} found." if observer_entry.nil? observer_set = observer_entry[:observers] end raise Ventable::Error, "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 |