Class: AttrDeprecated::DeprecatedAttributeLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/notifiers/deprecation_logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(target) ⇒ DeprecatedAttributeLogger

Returns a new instance of DeprecatedAttributeLogger.



3
4
5
6
# File 'lib/notifiers/deprecation_logger.rb', line 3

def initialize(target)
  @target = target
  super()
end

Instance Method Details

#backtraceObject



16
17
18
19
20
21
22
# File 'lib/notifiers/deprecation_logger.rb', line 16

def backtrace
  if defined? Rails
    Rails.backtrace_cleaner.clean(caller)
  else
    caller
  end
end

#log_deprecated_attribute_usage(klass, *attrs) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/notifiers/deprecation_logger.rb', line 24

def log_deprecated_attribute_usage(klass, *attrs)
  warning_message = "WARNING: Called deprecated attribute on #{klass.name}: #{attrs.join(', ')}\n" +
    backtrace.map { |trace| "\t#{trace}" }.join("\n")
  if logger?
    logger.warn do
      warning_message
    end
  else
    puts warning_message
  end
end

#loggerObject



8
9
10
# File 'lib/notifiers/deprecation_logger.rb', line 8

def logger
  @target.logger
end

#logger?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/notifiers/deprecation_logger.rb', line 12

def logger?
  @target.respond_to?(:logger) && @target.logger
end