Sha256: b981b3d5ce01c856b2597ba321b4154c26a2d1b0939c7245f8d92bb7495e2a9c

Contents?: true

Size: 1.75 KB

Versions: 40

Compression:

Stored size: 1.75 KB

Contents

module Sass
  # A deprecation warning that should only be printed once for a given line in a
  # given file.
  #
  # A global Deprecation instance should be created for each type of deprecation
  # warning, and `warn` should be called each time a warning is needed.
  class Deprecation
    @@allow_double_warnings = false

    # Runs a block in which double deprecation warnings for the same location
    # are allowed.
    def self.allow_double_warnings
      old_allow_double_warnings = @@allow_double_warnings
      @@allow_double_warnings = true
      yield
    ensure
      @@allow_double_warnings = old_allow_double_warnings
    end

    def initialize
      # A set of filename, line pairs for which warnings have been emitted.
      @seen = Set.new
    end

    # Prints `message` as a deprecation warning associated with `filename`,
    # `line`, and optionally `column`.
    #
    # This ensures that only one message will be printed for each line of a
    # given file.
    #
    # @overload warn(filename, line, message)
    #   @param filename [String, nil]
    #   @param line [Number]
    #   @param message [String]
    # @overload warn(filename, line, column, message)
    #   @param filename [String, nil]
    #   @param line [Number]
    #   @param column [Number]
    #   @param message [String]
    def warn(filename, line, column_or_message, message = nil)
      return if !@@allow_double_warnings && @seen.add?([filename, line]).nil?
      if message
        column = column_or_message
      else
        message = column_or_message
      end

      location = "line #{line}"
      location << ", column #{column}" if column
      location << " of #{filename}" if filename

      Sass::Util.sass_warn("DEPRECATION WARNING on #{location}:\n#{message}")
    end
  end
end

Version data entries

40 entries across 40 versions & 5 rubygems

Version Path
files.com-1.0.55 docs/vendor/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/deprecation.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
zuora_connect_ui-0.9.2 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
chatops-rpc-0.0.2 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/sass-3.7.4/lib/sass/deprecation.rb
chatops-rpc-0.0.1 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/sass-3.7.4/lib/sass/deprecation.rb
zuora_connect_ui-0.9.1 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
zuora_connect_ui-0.9.0 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
zuora_connect_ui-0.8.3 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
zuora_connect_ui-0.8.2 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
zuora_connect_ui-0.8.1 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
zuora_connect_ui-0.8.0 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
zuora_connect_ui-0.7.1 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
zuora_connect_ui-0.7.0 vendor/ruby/2.6.0/gems/sass-3.7.4/lib/sass/deprecation.rb
sass-3.7.4 lib/sass/deprecation.rb
brakeman-4.4.0 bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/deprecation.rb
sass-3.7.3 lib/sass/deprecation.rb
sass-3.7.2 lib/sass/deprecation.rb
sass-3.7.1 lib/sass/deprecation.rb
sass-3.7.0 lib/sass/deprecation.rb
sass-3.6.0 lib/sass/deprecation.rb