blob: d817c9de87bd7dc269319685faab19e43145f125 [file] [log] [blame]
module Sass
module Importers
# This importer emits a deprecation warning the first time it is used to
# import a file. It is used to deprecate the current working
# directory from the list of automatic sass load paths.
class DeprecatedPath < Filesystem
# @param root [String] The absolute, expanded path to the folder that is deprecated.
def initialize(root)
@specified_root = root
@warning_given = false
super
end
# @see Sass::Importers::Base#find
def find(*args)
found = super
if found && !@warning_given
@warning_given = true
Sass::Util.sass_warn deprecation_warning
end
found
end
# @see Base#directories_to_watch
def directories_to_watch
# The current working directory was not watched in Sass 3.2,
# so we continue not to watch it while it's deprecated.
[]
end
# @see Sass::Importers::Base#to_s
def to_s
"#{@root} (DEPRECATED)"
end
protected
# @return [String] The deprecation warning that will be printed the first
# time an import occurs.
def deprecation_warning
path = @specified_root == "." ? "the current working directory" : @specified_root
<<WARNING
DEPRECATION WARNING: Importing from #{path} will not be
automatic in future versions of Sass. To avoid future errors, you can add it
to your environment explicitly by setting `SASS_PATH=#{@specified_root}`, by using the -I command
line option, or by changing your Sass configuration options.
WARNING
end
end
end
end