Class: Jobshop::Order

Inherits:
ApplicationRecord show all
Defined in:
app/models/jobshop/order.rb

Instance Method Summary collapse

Instance Method Details

#add_listener(listener) ⇒ Object



22
23
24
# File 'app/models/jobshop/order.rb', line 22

def add_listener(listener)
  (@listeners ||= []) << listener
end

#notify_listeners(event_name, *args) ⇒ Object



26
27
28
29
30
31
32
# File 'app/models/jobshop/order.rb', line 26

def notify_listeners(event_name, *args)
  @listeners && @listeners.each do |listener|
    if listener.respond_to?(event_name)
      listener.public_send(event_name, self, *args)
    end
  end
end

#notify_on_saveObject



34
35
36
37
# File 'app/models/jobshop/order.rb', line 34

def notify_on_save
  yield
  notify_listeners(:on_save)
end