Class: CommandProcessor::LoggableProcessor

Inherits:
Object
  • Object
show all
Defined in:
lib/command_processor/extensions/loggable_processor.rb

Instance Method Summary collapse

Constructor Details

#initialize(processor, logger, blacklisted_parameters = []) ⇒ LoggableProcessor

Returns a new instance of LoggableProcessor.



3
4
5
6
7
# File 'lib/command_processor/extensions/loggable_processor.rb', line 3

def initialize(processor, logger, blacklisted_parameters=[])
  @processor = processor
  @logger = logger
  @blacklisted_parameters = blacklisted_parameters
end

Instance Method Details

#execute(command) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/command_processor/extensions/loggable_processor.rb', line 9

def execute(command)
  parameters = command.to_params
  filtered_parameters = parameters.inject({}) do |memo, (key, value)|
    filtered_value = @blacklisted_parameters.include?(key) ? "[FILTERED]" : value
    memo.merge(key => filtered_value)
  end
  @logger.info("Processing #{command.class.name}\n  Parameters: #{filtered_parameters}")
  @processor.execute(command)
end