Sha256: 7ee9ec75ed68d4ff1b24a204dfd095371a66224833ee50bf2f125b8198c38a6b
Contents?: true
Size: 1.25 KB
Versions: 30
Compression:
Stored size: 1.25 KB
Contents
# frozen_string_literal: true module SidekiqUniqueJobs # # Class Info provides information about a lock # # @author Mikael Henriksson <mikael@mhenrixon.com> # class LockInfo < Redis::String # # Returns the value for this key as a hash # # # @return [Hash] # def value @value ||= load_json(super) end # # Check if this redis string is blank # # # @return [Boolean] # def none? value.nil? || value.empty? end # # Check if this redis string has a value # # # @return [Boolean] # def present? !none? end # # Quick access to the hash members for the value # # @param [String, Symbol] key the key who's value to retrieve # # @return [Object] # def [](key) value[key.to_s] if value.is_a?(Hash) end # # Writes the lock info to redis # # @param [Hash] obj the information to store at key # # @return [Hash] # def set(obj) return unless SidekiqUniqueJobs.config.lock_info raise InvalidArgument, "argument `obj` (#{obj}) needs to be a hash" unless obj.is_a?(Hash) json = dump_json(obj) @value = load_json(json) super(json) value end end end
Version data entries
30 entries across 30 versions & 1 rubygems