Sha256: a5b52380c8b720298a4514ad7636deb7bd57568bdeb0f06b3d1a8bdbb3d8def8

Contents?: true

Size: 1.78 KB

Versions: 13

Compression:

Stored size: 1.78 KB

Contents

require 'lotus/utils'

module Lotus
  module Utils
    # Prints a deprecation warning when initialized
    #
    # @since 0.3.1
    class Deprecation
      # Initialize a deprecation message and prints it to standard error.
      #
      # @param message [#to_s] a deprecation message
      #
      # @since 0.3.1
      #
      # @example Direct usage
      #   require 'lotus/utils/deprecation'
      #
      #   class Engine
      #     def old_method
      #       Lotus::Utils::Deprecation.new('old_method is deprecated, please use new_method')
      #       new_method
      #     end
      #
      #     def new_method
      #       puts 'started'
      #     end
      #   end
      #
      #   Engine.new.old_method
      #     # => old_method is deprecated, please use new_method - called from: test.rb:14:in `<main>'.
      #     # => started
      #
      # @example Indirect usage
      #   require 'lotus/utils/deprecation'
      #
      #   class Engine
      #     def old_method
      #       Lotus::Utils::Deprecation.new('old_method is deprecated, please use new_method')
      #       new_method
      #     end
      #
      #     def new_method
      #       puts 'started'
      #     end
      #   end
      #
      #   class Car
      #     def initialize
      #       @engine = Engine.new
      #     end
      #
      #     def start
      #       @engine.old_method
      #     end
      #   end
      #
      #   Car.new.start
      #     # => old_method is deprecated, please use new_method - called from: test.rb:20:in `start'.
      #     # => started
      def initialize(message)
        ::Kernel.warn("#{ message } - called from: #{ caller[caller_index] }.")
      end

      private
      def caller_index
        Utils.jruby? || Utils.rubinius? ? 1 : 2
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
lotus-utils-0.6.1 lib/lotus/utils/deprecation.rb
lotus-utils-0.6.0 lib/lotus/utils/deprecation.rb
lotus-utils-0.5.2 lib/lotus/utils/deprecation.rb
lotus-utils-0.5.1 lib/lotus/utils/deprecation.rb
lotus-utils-0.5.0 lib/lotus/utils/deprecation.rb
lotus-utils-0.4.3 lib/lotus/utils/deprecation.rb
lotus-utils-0.4.2 lib/lotus/utils/deprecation.rb
lotus-utils-0.4.1 lib/lotus/utils/deprecation.rb
lotus-utils-0.4.0 lib/lotus/utils/deprecation.rb
lotus-utils-0.3.5 lib/lotus/utils/deprecation.rb
lotus-utils-0.3.4 lib/lotus/utils/deprecation.rb
lotus-utils-0.3.3 lib/lotus/utils/deprecation.rb
lotus-utils-0.3.2 lib/lotus/utils/deprecation.rb