module Compass::Configuration::Adapters

The adapters module provides methods that make configuration data from a compass project adapt to various consumers of configuration data

Public Instance Methods

absolute_path?(path) click to toggle source
# File lib/compass/configuration/adapters.rb, line 57
def absolute_path?(path)
  # Pretty basic implementation
  path.index(File::SEPARATOR) == 0 || path.index(':') == 1
end
resolve_additional_import_paths() click to toggle source
# File lib/compass/configuration/adapters.rb, line 47
def resolve_additional_import_paths
  (additional_import_paths || []).map do |path|
    if path.is_a?(String) && project_path && !absolute_path?(path)
      File.join(project_path, path)
    else
      path
    end
  end
end
sass_3_4?() click to toggle source
# File lib/compass/configuration/adapters.rb, line 101
def sass_3_4?
  Sass.version[:major] == 3 && Sass.version[:minor] == 4
end
sass_load_paths() click to toggle source
# File lib/compass/configuration/adapters.rb, line 80
def sass_load_paths
  load_paths = []
  load_paths << sass_path if sass_path
  Compass::Frameworks::ALL.each do |f|
    load_paths << f.stylesheets_directory if File.directory?(f.stylesheets_directory)
  end
  importer = sass_options[:filesystem_importer] if sass_options && sass_options[:filesystem_importer]
  importer ||= Sass::Importers::Filesystem
  load_paths += resolve_additional_import_paths
  load_paths.map! do |p|
    next p if p.respond_to?(:find_relative)
    importer.new(p.to_s)
  end
  # TODO: When sprites are extracted to their own plugin, this
  # TODO: will need to be extracted to there.
  if defined?(Compass::SpriteImporter.new)
    load_paths << Compass::SpriteImporter.new
  end
  load_paths
end
to_compiler_arguments(additional_options = {}) click to toggle source
# File lib/compass/configuration/adapters.rb, line 6
def to_compiler_arguments(additional_options = {})
  engine_opts = to_sass_engine_options.merge(additional_options)
  # we have to pass the quiet option in the nested :sass hash to disambiguate it from the compass compiler's own quiet option.
  if engine_opts.has_key?(:quiet)
    engine_opts[:sass] ||= {}
    engine_opts[:sass][:quiet] = engine_opts.delete(:quiet)
  end
  [project_path, sass_path, css_path, engine_opts]
end
to_sass_engine_options() click to toggle source
# File lib/compass/configuration/adapters.rb, line 62
def to_sass_engine_options
  engine_opts = {:load_paths => sass_load_paths}
  engine_opts[:style] = output_style if output_style
  engine_opts[:line_comments] = line_comments
  if sass_3_4?
    engine_opts[:sourcemap] = sourcemap ? :auto : :none
  else
    engine_opts[:sourcemap] = sourcemap
  end
  engine_opts[:cache] = cache
  engine_opts[:cache_location] = cache_path
  engine_opts[:quiet] = disable_warnings if disable_warnings
  engine_opts[:compass] = {}
  engine_opts[:compass][:environment] = environment
  engine_opts[:full_exception] = (environment == :development)
  engine_opts.merge!(sass_options || {})
end
to_sass_plugin_options() click to toggle source
# File lib/compass/configuration/adapters.rb, line 16
def to_sass_plugin_options
  locations = []
  locations << [sass_path, css_path] if sass_path && css_path
  Compass::Frameworks::ALL.each do |framework|
    locations << [framework.stylesheets_directory, File.join(css_path || css_dir || ".", framework.name)]
  end
  plugin_opts = {:template_location => locations}
  plugin_opts[:style] = output_style if output_style
  plugin_opts[:line_comments] = line_comments
  if sass_3_4?
    plugin_opts[:sourcemap] = sourcemap ? :auto : :none
  else
    plugin_opts[:sourcemap] = sourcemap
  end
  plugin_opts[:cache] = cache unless cache.nil?
  plugin_opts[:cache_location] = cache_path unless cache_path.nil?
  plugin_opts[:quiet] = disable_warnings if disable_warnings
  plugin_opts[:compass] = {}
  plugin_opts[:compass][:environment] = environment
  plugin_opts.merge!(sass_options || {})
  plugin_opts[:load_paths] ||= []
  plugin_opts[:load_paths] += resolve_additional_import_paths
  # TODO: When sprites are extracted to their own plugin, this
  # TODO: will need to be extracted to there.
  if defined?(Compass::SpriteImporter.new)
    plugin_opts[:load_paths] << Compass::SpriteImporter.new
  end
  plugin_opts[:full_exception] = (environment == :development)
  plugin_opts
end