Sha256: d62b218e1e69ad044115465ce5cd6eb41f3eece5cf4e91ff522c0671d250e1f3

Contents?: true

Size: 1.33 KB

Versions: 7

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

require "mime/types/logger"

class << MIME::Types
  # Used to mark a method as deprecated in the mime-types interface.
  def deprecated(options = {}, &block) # :nodoc:
    message =
      if options[:message]
        options[:message]
      else
        klass = options.fetch(:class)

        msep = case klass
        when Class, Module
          "."
        else
          klass = klass.class
          "#"
        end

        method = "#{klass}#{msep}#{options.fetch(:method)}"
        pre = " #{options[:pre]}" if options[:pre]
        post = case options[:next]
        when :private, :protected
          " and will be made #{options[:next]}"
        when :removed
          " and will be removed"
        when nil, ""
          nil
        else
          " #{options[:next]}"
        end

        <<-WARNING.chomp.strip
        #{caller(2..2).first}: #{klass}#{msep}#{method}#{pre} is deprecated#{post}.
        WARNING
      end

    if !__deprecation_logged?(message, options[:once])
      MIME::Types.logger.__send__(options[:level] || :debug, message)
    end

    return unless block
    block.call
  end

  private

  def __deprecation_logged?(message, once)
    return false unless once

    @__deprecations_logged = {} unless defined?(@__deprecations_logged)
    @__deprecations_logged.key?(message)
  end
end

Version data entries

7 entries across 6 versions & 3 rubygems

Version Path
mime-types-3.6.1 lib/mime/types/deprecations.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/mime-types-3.6.0/lib/mime/types/deprecations.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.1.0/gems/mime-types-3.6.0/lib/mime/types/deprecations.rb
kinetic_sdk-5.0.29 gems/mime-types-3.6.0/lib/mime/types/deprecations.rb
kinetic_sdk-5.0.28 gems/mime-types-3.6.0/lib/mime/types/deprecations.rb
mime-types-3.6.0 lib/mime/types/deprecations.rb
mime-types-3.6.0.beta1 lib/mime/types/deprecations.rb