module Compass::Configuration::Helpers

The helpers are available as methods on the Compass module. E.g. Compass.configuration

Constants

KNOWN_CONFIG_LOCATIONS

TODO: Deprecate the src/config.rb location.

Public Instance Methods

add_configuration(config, filename = nil) click to toggle source
# File lib/compass/configuration/helpers.rb, line 18
def add_configuration(config, filename = nil)
  return if config.nil?


  data = configuration_for(config, filename)

  # puts "New configuration: #{data.name}"
  # puts caller.join("\n")
  data.inherit_from!(configuration)
  data.on_top!
  @configuration = data
end
add_project_configuration(*args) { || ... } click to toggle source

Read the configuration file for this project

# File lib/compass/configuration/helpers.rb, line 85
def add_project_configuration(*args)
  options = args.last.is_a?(Hash) ? args.pop : {}
  configuration_file_path = args.shift || detect_configuration_file
  raise ArgumentError, "Too many arguments" if args.any?
  if data = configuration_for(configuration_file_path, nil, configuration_for(options[:defaults]))
    if data.raw_project_type
      add_configuration(data.raw_project_type.to_sym)
    elsif options[:project_type]
      add_configuration(options[:project_type])
    else
      add_configuration(:stand_alone)
    end

    add_configuration(data)
  else
    add_configuration(options[:project_type] || configuration.project_type_without_default || (yield if block_given?) || :stand_alone)
  end
end
compiler() click to toggle source
# File lib/compass/configuration/helpers.rb, line 145
def compiler
  Compass::Compiler.new(*Compass.configuration.to_compiler_arguments)
end
configuration() { |configuration| ... } click to toggle source
# File lib/compass/configuration/helpers.rb, line 6
def configuration
  @configuration ||= default_configuration
  if block_given?
    yield @configuration
  end
  @configuration
end
configuration_for(config, filename = nil, defaults = nil) click to toggle source
# File lib/compass/configuration/helpers.rb, line 31
def configuration_for(config, filename = nil, defaults = nil)
  if config.nil?
    nil
  elsif config.is_a?(Compass::Configuration::Data)
    config
  elsif config.respond_to?(:read)
    filename ||= config.to_s if config.is_a?(Pathname)
    Compass::Configuration::FileData.new_from_string(config.read, filename, defaults)
  elsif config.is_a?(Hash)
    Compass::Configuration::Data.new(filename, config)
  elsif config.is_a?(String)
    Compass::Configuration::FileData.new_from_file(config, defaults)
  elsif config.is_a?(Symbol)
    Compass::AppIntegration.lookup(config).configuration
  else
    raise "I don't know what to do with: #{config.inspect}"
  end
end
configure_sass_plugin!() click to toggle source
# File lib/compass/configuration/helpers.rb, line 59
def configure_sass_plugin!
  require 'sass/plugin'
  config = sass_plugin_configuration
  locations = config.delete(:template_location)
  Sass::Plugin.options.merge!(config)
  locations.each do |sass_dir, css_dir|
    unless Sass::Plugin.engine_options[:load_paths].include?(sass_dir)
      Sass::Plugin.add_template_location sass_dir, css_dir
    end
  end
  unless @callbacks_loaded
    Sass::Plugin.on_updating_stylesheet do |sass_file, css_file|
      Compass.configuration.run_callback(:stylesheet_saved, css_file)
    end
    Sass::Plugin.on_compilation_error do |e, filename, css|
      Compass.configuration.run_callback(:stylesheet_error, filename, e.message)
    end
    @callbacks_loaded = true
  end
end
default_configuration() click to toggle source
# File lib/compass/configuration/helpers.rb, line 14
def default_configuration
  Data.new('defaults').extend(Defaults).extend(Comments)
end
deprojectize(path, project_path = nil) click to toggle source
# File lib/compass/configuration/helpers.rb, line 121
def deprojectize(path, project_path = nil)
  project_path ||= configuration.project_path
  if path[0..(project_path.size - 1)] == project_path
    path[(project_path.size + 1)..-1]
  else
    path
  end
end
detect_configuration_file(project_path = nil) click to toggle source

Finds the configuration file, if it exists in a known location.

# File lib/compass/configuration/helpers.rb, line 134
def detect_configuration_file(project_path = nil)
  possible_files = KNOWN_CONFIG_LOCATIONS.map{|f| projectize(f, project_path) }
  possible_files.detect{|f| File.exists?(f)}
end
discover_extensions!() click to toggle source
# File lib/compass/configuration/helpers.rb, line 104
def discover_extensions!
  Compass.shared_extension_paths.each do |extensions_path|
    if File.directory?(extensions_path)
      Compass::Frameworks.discover(extensions_path)
    end
  end
  if File.directory?(configuration.extensions_path)
    Compass::Frameworks.discover(configuration.extensions_path)
  end
end
handle_configuration_change!() click to toggle source
# File lib/compass/configuration/helpers.rb, line 139
def handle_configuration_change!
  if (compiler = Compass.compiler).new_config?
    compiler.clean!
  end
end
projectize(path, project_path = nil) click to toggle source

Returns a full path to the relative path to the project directory

# File lib/compass/configuration/helpers.rb, line 116
def projectize(path, project_path = nil)
  project_path ||= configuration.project_path
  File.join(project_path, *path.split('/'))
end
reset_configuration!() click to toggle source

Support for testing.

# File lib/compass/configuration/helpers.rb, line 51
def reset_configuration!
  @configuration = nil
end
sass_engine_options() click to toggle source
# File lib/compass/configuration/helpers.rb, line 80
def sass_engine_options
  configuration.to_sass_engine_options
end
sass_plugin_configuration() click to toggle source
# File lib/compass/configuration/helpers.rb, line 55
def sass_plugin_configuration
  configuration.to_sass_plugin_options
end