Module: WhittakerTech::Midas::Deprecation

Defined in:
lib/whittaker_tech/midas/deprecation.rb

Overview

Emits or raises deprecation notices for Midas API changes.

Behavior is controlled by WhittakerTech::Midas.deprecation_behavior:

:warn    - prints a warning to STDERR (default)
:raise   - raises a DeprecationError (useful in test mode)
:silence - suppresses all notices

Defined Under Namespace

Classes: DeprecationError

Constant Summary collapse

HORIZON =

Removal horizon advertised in deprecation messages.

'0.3.0'

Class Method Summary collapse

Class Method Details

.warn(message, callsite = caller_locations(1, 1).first) ⇒ Object

Emits a deprecation notice for message attributed to callsite.

Parameters:

  • message (String)

    human-readable deprecation description

  • callsite (Thread::Backtrace::Location, nil) (defaults to: caller_locations(1, 1).first)


20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/whittaker_tech/midas/deprecation.rb', line 20

def self.warn(message, callsite = caller_locations(1, 1).first)
  location = callsite ? "#{callsite.path}:#{callsite.lineno}" : 'unknown'
  full = "[DEPRECATED] #{message} " \
         "(called from #{location}). " \
         "Will be removed in whittaker_tech-midas #{HORIZON}."

  case WhittakerTech::Midas.deprecation_behavior
  when :raise   then raise DeprecationError, full
  when :silence then nil
  else               Kernel.warn full
  end
end