File: deprecation.rb

package info (click to toggle)
ruby-concurrent 1.1.6%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 30,284 kB
  • sloc: ruby: 30,875; java: 6,117; javascript: 1,114; ansic: 288; makefile: 10; sh: 6
file content (34 lines) | stat: -rw-r--r-- 1,065 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require 'concurrent/concern/logging'

module Concurrent
  module Concern

    # @!visibility private
    # @!macro internal_implementation_note
    module Deprecation
      # TODO require additional parameter: a version. Display when it'll be removed based on that. Error if not removed.
      include Concern::Logging

      def deprecated(message, strip = 2)
        caller_line = caller(strip).first if strip > 0
        klass       = if Module === self
                        self
                      else
                        self.class
                      end
        message     = if strip > 0
                        format("[DEPRECATED] %s\ncalled on: %s", message, caller_line)
                      else
                        format('[DEPRECATED] %s', message)
                      end
        log WARN, klass.to_s, message
      end

      def deprecated_method(old_name, new_name)
        deprecated "`#{old_name}` is deprecated and it'll removed in next release, use `#{new_name}` instead", 3
      end

      extend self
    end
  end
end