zammad/lib/sequencer/unit/common/provider/attribute.rb
2026-01-02 15:41:09 +02:00

32 lines
632 B
Ruby

# Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
class Sequencer::Unit::Common::Provider::Attribute < Sequencer::Unit::Base
def process
return if ignore?
state.provide(attribute, value)
end
private
def attribute
@attribute ||= provides
end
def provides
provides_list = self.class.provides
raise "Only single provide attribute possible for class #{self.class.name}" if provides_list.size != 1
provides_list.first
end
def value
@value ||= send(attribute)
end
def ignore?
# don't store nil values which are default anyway
value.nil?
end
end