1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
- class Sequencer
- class Unit
- module Import
- module Common
- module Model
- module Mixin
- module Skip
- module Action
- module ClassMethods
- def skip_action(*actions)
- declaration_accessor(
- key: __method__,
- attributes: actions
- )
- end
- alias skip_actions skip_action
- def skip_any_action
- skip_actions(:any)
- end
- def skip_action?(action)
- logger.debug { "Checking if skip is necessary for action #{action.inspect}." }
- return false if action.blank?
- logger.debug { "Checking if skip is necessary for skip_actions #{skip_actions.inspect}." }
- return false if skip_actions.blank?
- return true if skip_actions.include?(action)
- return true if skip_actions.include?(:any)
- false
- end
- end
- def self.prepended(base)
- base.optional :action
- base.extend(ClassMethods)
- end
- def process
- if self.class.skip_action?(action)
- logger.debug { "Skipping due to provided action #{action.inspect}." }
- else
- logger.debug { "Nope. Won't skip action #{action.inspect}." }
- super
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
|