1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
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
|