Sha256: 20dae087fcd116403dd853226a098ac6c4e6c27f34bfcd06d6c514909503e717

Contents?: true

Size: 1.46 KB

Versions: 8

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

require 'cucumber/platform'
require 'cucumber/gherkin/formatter/ansi_escapes'

module Cucumber
  module Deprecate
    class AnsiString
      include Cucumber::Gherkin::Formatter::AnsiEscapes

      def self.failure_message(message)
        AnsiString.new.failure_message(message)
      end

      def failure_message(message)
        failed + message + reset
      end
    end

    class CliOption
      def self.deprecate(stream, option, message, remove_after_version)
        return if stream.nil?

        stream.puts(
          AnsiString.failure_message(
            "\nWARNING: #{option} is deprecated" \
            " and will be removed after version #{remove_after_version}.\n#{message}.\n"
          )
        )
      end
    end

    module ForUsers
      def self.call(message, method, remove_after_version)
        $stderr.puts AnsiString.failure_message(
          "\nWARNING: ##{method} is deprecated" \
          " and will be removed after version #{remove_after_version}. #{message}.\n" \
          "(Called from #{caller(3..3).first})"
        )
      end
    end

    module ForDevelopers
      def self.call(_message, _method, remove_after_version)
        raise "This method is due for removal after version #{remove_after_version}" if Cucumber::VERSION >= remove_after_version
      end
    end

    STRATEGY = $PROGRAM_NAME =~ /rspec$/ ? ForDevelopers : ForUsers
  end

  def self.deprecate(*args)
    Deprecate::STRATEGY.call(*args)
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
cucumber-9.0.1 lib/cucumber/deprecate.rb
cucumber-9.0.0 lib/cucumber/deprecate.rb
rubypitaya-3.12.5 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/cucumber-8.0.0/lib/cucumber/deprecate.rb
rubypitaya-3.12.4 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/cucumber-8.0.0/lib/cucumber/deprecate.rb
rubypitaya-3.12.3 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/cucumber-8.0.0/lib/cucumber/deprecate.rb
rubypitaya-3.12.2 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/cucumber-8.0.0/lib/cucumber/deprecate.rb
cucumber-8.0.0 lib/cucumber/deprecate.rb
cucumber-8.0.0.rc.1 lib/cucumber/deprecate.rb