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



18
19
20
# File 'app/models/jobshop/order.rb', line 18

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

#notify_listeners(event_name, *args) ⇒ Object



22
23
24
25
26
27
28
# File 'app/models/jobshop/order.rb', line 22

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



30
31
32
33
# File 'app/models/jobshop/order.rb', line 30

def notify_on_save
  yield
  notify_listeners(:on_save)
end