Sha256: 9c94876f8737eaacbd6fcea800665095b7d59e2bc8bbb32fec935d2aeae14080

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

module Sequel
  # This module makes it easy to add deprecation functionality to other classes.
  module Deprecation # :nodoc:
    # This sets the output stream for the deprecation messages.  Set it to an IO
    # (or any object that responds to puts) and it will call puts on that
    # object with the deprecation message.  Set to nil to ignore deprecation messages.
    def self.deprecation_message_stream=(file)
      @dms = file
    end

    # Set this to true to print tracebacks with every deprecation message,
    # so you can see exactly where in your code the deprecated methods are
    # being called.
    def self.print_tracebacks=(pt)
      @pt = pt
    end

    # Puts the messages unaltered to the deprecation message stream
    def self.deprecate(message)
      if @dms
        @dms.puts(message)
        caller.each{|c| @dms.puts(c)} if @pt 
      end
    end

    # Formats the message with a message that it will be removed in Sequel 2.0.
    # This is the method that is added to the classes that include Sequel::Deprecation.
    def deprecate(meth, message = nil)
      ::Sequel::Deprecation.deprecate("#{meth} is deprecated, and will be removed in Sequel 2.0.#{"  #{message}." if message}")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sequel_core-2.0.1 lib/sequel_core/deprecated.rb
sequel_core-2.0.0 lib/sequel_core/deprecated.rb