Module: PacketGen::Deprecation Private

Defined in:
lib/packetgen/deprecation.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Deprecation module

Author:

  • Sylvain Daubert

Since:

  • 2.7.0

Constant Summary collapse

REMOVE_VERSION =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Default remove version for deprecated classes/methods

Since:

  • 3.1.0

'4.0.0'

Class Method Summary collapse

Class Method Details

.deprecated(klass, deprecated_method, new_method = nil, klass_method: false, remove_version: REMOVE_VERSION) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Warn when using a deprecated method

Parameters:

  • klass (Module)

    class/module of deprecated method

  • deprecated_method (Symbol, String)
  • new_method (Symbol, String, nil) (defaults to: nil)

    method to use instead of deprecated one

  • klass_method (Boolean) (defaults to: false)

    deprecated_method is a class method (true) or a, instance one (false)

  • remove_version (String) (defaults to: REMOVE_VERSION)

    version from which deprecated_method will no more exist.

Since:

  • 2.7.0



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

def self.deprecated(klass, deprecated_method, new_method=nil, klass_method: false, remove_version: REMOVE_VERSION)
  separator = klass_method ? '.' : '#'
  base_name = klass.to_s + separator
  complete_deprecated_method_name = base_name + deprecated_method.to_s
  complete_new_method_name = base_name + new_method.to_s unless new_method.nil?

  file, line = caller(2).first.split(':')[0, 2]
  message = +"#{file}:#{line}: #{complete_deprecated_method_name} is deprecated"
  message << " in favor of #{complete_new_method_name}" unless new_method.nil?
  message << ". It will be remove in PacketGen #{remove_version}."
  warn message
end

.deprecated_class(klass, new_klass = nil, remove_version: REMOVE_VERSION) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Warn when using a deprecated method

Parameters:

  • klass (Module)

    deprecated class/module

  • new_klass (Module) (defaults to: nil)

    class/module to use instead of klass

  • remove_version (String) (defaults to: REMOVE_VERSION)

    version from which klass will no more exist.

Since:

  • 3.1.0



38
39
40
41
42
43
44
# File 'lib/packetgen/deprecation.rb', line 38

def self.deprecated_class(klass, new_klass=nil, remove_version: REMOVE_VERSION)
  file, line = caller(2..2).first.split(':')[0, 2]
  message = +"#{file}:#{line}: #{klass} is deprecated"
  message << " in favor od #{new_klass}" unless new_klass.nil?
  message << ". It will be remove in PacketGen #{remove_version}."
  warn message
end