From 3462dcb9cf4d914984afbd0a444725d5ca57a767 Mon Sep 17 00:00:00 2001 From: Mika Hel Date: Sun, 13 Oct 2019 22:53:42 +0200 Subject: [PATCH] Allow logger to be lazy and converted on first use --- lib/brpoplpush/redis_script/config.rb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/brpoplpush/redis_script/config.rb b/lib/brpoplpush/redis_script/config.rb index 3918587..1efc71f 100644 --- a/lib/brpoplpush/redis_script/config.rb +++ b/lib/brpoplpush/redis_script/config.rb @@ -7,10 +7,6 @@ module RedisScript # # @author Mikael Henriksson class Config - # - # @!attribute [r] logger - # @return [Logger] a logger to use for debugging - attr_reader :logger # # @!attribute [r] scripts_path # @return [Pathname] a directory with lua scripts @@ -50,17 +46,23 @@ def scripts_path=(obj) end end + def logger + # Convert to a regular logger on first call + @logger = @logger.call if @logger.is_a?(Proc) + @logger + end + # # Sets a value for logger # - # @param [Logger] obj a logger to use + # @param [Logger, Proc] obj a logger to use # # @raise [ArgumentError] when given argument isn't a Logger # # @return [Logger] # def logger=(obj) - raise ArgumentError, "#{obj} should be a Logger" unless obj.is_a?(Logger) + raise ArgumentError, "#{obj} should be a Logger or a proc" unless obj.is_a?(Logger) || obj.is_a?(Proc) @logger = obj end