Class: SassC::Rails::Importer

Inherits:
Importer
  • Object
show all
Defined in:
lib/sassc/rails/importer.rb

Defined Under Namespace

Classes: CSSExtension, CssSassExtension, CssScssExtension, ERBExtension, Extension, SassERBExtension

Constant Summary collapse

EXTENSIONS =
[
  Extension.new(".scss"),
  Extension.new(".sass"),
  CSSExtension.new,
  ERBExtension.new(".scss.erb"),
  ERBExtension.new(".css.erb"),
  SassERBExtension.new,
  CssScssExtension.new,
  CssSassExtension.new
]
PREFIXS =
[ "", "_" ]

Instance Method Summary collapse

Instance Method Details

#imports(path, parent_path) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/sassc/rails/importer.rb', line 86

def imports(path, parent_path)
  parent_dir, _ = File.split(parent_path)
  specified_dir, specified_file = File.split(path)

  search_paths = ([parent_dir] + load_paths).uniq

  if specified_dir != "."
    search_paths.map! do |path|
      File.join(path, specified_dir)
    end
  end

  search_paths.each do |search_path|
    PREFIXS.each do |prefix|
      file_name = prefix + specified_file

      EXTENSIONS.each do |extension|
        try_path = File.join(search_path, file_name + extension.postfix)
        if File.exists?(try_path)
          record_import_as_dependency try_path
          return extension.import_for(path, parent_path, try_path, options)
        end
      end
    end
  end

  Import.new(path)
end