Sha256: df2f13b79368a482d09a5dbd7223dabcb722bac855c008de585bcaf5df7eca04

Contents?: true

Size: 971 Bytes

Versions: 13

Compression:

Stored size: 971 Bytes

Contents

module Timezone
  # This class provides a way to set a custom hook for deprecations.
  module Deprecate
    class << self
      # Set the custom deprecation callback. By default this
      # issues a deprecation warning.
      #
      # @param callback [#call] the custom callback
      #
      # @example Send a message to StatsD
      #   Timezone::Deprecate.callback = lambda do |klass, method, _|
      #     StatsD.increment(sanitize(klass, method))
      #   end
      #
      # @example Send a message to a custom logger
      #   Timezone::Deprecate.callback = lambda do |klass, method, msg|
      #     MyLogger.log("[#{klass} : #{method}] #{msg}")
      #   end
      attr_writer :callback

      # @!visibility private
      def callback
        @callback || ->(_, _, message) { warn(message) }
      end

      # @!visibility private
      def call(klass, method, message)
        callback && callback.call(klass, method, message)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
timezone-1.2.8 lib/timezone/deprecate.rb
timezone-1.2.7 lib/timezone/deprecate.rb
timezone-1.2.6 lib/timezone/deprecate.rb
timezone-1.2.5 lib/timezone/deprecate.rb
timezone-1.2.4 lib/timezone/deprecate.rb
timezone-1.2.3 lib/timezone/deprecate.rb
timezone-1.2.2 lib/timezone/deprecate.rb
timezone-1.2.1 lib/timezone/deprecate.rb
timezone-1.2.0 lib/timezone/deprecate.rb
timezone-1.1.1 lib/timezone/deprecate.rb
timezone-1.1.0 lib/timezone/deprecate.rb
timezone-1.0.0 lib/timezone/deprecate.rb
timezone-0.99.2 lib/timezone/deprecate.rb