Report abuse

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
# Build engine
engine = ::Sass::Engine.new(content, options)

# Get import nodes
require 'set'
imported_nodes = []
unprocessed_nodes = Set.new([ engine.to_tree ])
until unprocessed_nodes.empty?
  # Get an unprocessed node
  node = unprocessed_nodes.each { |n| break n }
  unprocessed_nodes.delete(node)

  # Add to list of import nodes if necessary
  imported_nodes << node if node.is_a?(::Sass::Tree::ImportNode)

  # Mark children of this node for processing
  node.children.each { |c| unprocessed_nodes << c }
end

# Get import paths
import_paths = (options[:load_paths] || []).dup
import_paths.unshift(File.dirname(options[:filename])) if options[:filename]

# Get imported filenames
imported_filenames = imported_nodes.map do |node|
  ::Sass::Files.find_file_to_import(node.imported_filename, import_paths)
end