class Netfira::WebConnect::RackApp::Action::Version8::Records
Public Instance Methods
call()
click to toggle source
# File lib/netfira/web_connect/rack_app/actions/version_8/records.rb, line 6 def call allow :delete purge! end
Private Instance Methods
delete_handler_exists?()
click to toggle source
# File lib/netfira/web_connect/rack_app/actions/version_8/records.rb, line 37 def delete_handler_exists? Netfira::WebConnect.handles_event? delete_handler_name end
delete_handler_name()
click to toggle source
# File lib/netfira/web_connect/rack_app/actions/version_8/records.rb, line 33 def delete_handler_name @destroy_handler_name ||= :"delete_#{path.first.underscore}" end
purge!()
click to toggle source
# File lib/netfira/web_connect/rack_app/actions/version_8/records.rb, line 13 def purge! raise NotFound unless path.count == 1 && Models.const_defined?(path.first) klass = Models.const_get(path.first) raise NotFound unless Class === klass && klass < Model::Record scope = klass.where shop_id: shop.id method = delete_handler_exists? ? :destroy_all : :delete_all event_args = [ [:purge, shop, klass], [:"purge_#{path.first.underscore.pluralize}", shop] ] event_args.each { |args| dispatch_event [:before, :on], *args } dispatch_event(:around, *event_args.first) do dispatch_event(:around, *event_args.last) do scope.__send__ method end end event_args.each { |args| dispatch_event :after, *args } {} end