chriseppstein/compass

View on GitHub
core/stylesheets/compass/_configuration.scss

Summary

Maintainability
Test Coverage
$project-path: null !default;
$debug-configuration: false !default;
$compass-initialized: false !default;
$compass-configured: false !default;

@mixin debug-compass-configuration {
  @if $debug-configuration {
    /* Compass Configuration: */
    @each $setting, $value in compass-configuration() {
      /* #{$setting}: #{inspect($value)} */
    }
  }
}

// This mixin resets the compass configuration
// and then initializes it with the sass options
// set in the environment. It is immediately called during import.
// It's unlikely you'll need to call this mixin yourself.
@mixin compass-initializer($project-path: $project-path) {
  @if not $compass-initialized and not using-compass-compiler() {
    $default-configuration: reset-configuration();
    $default-configuration: add-sass-configuration($project-path);
  }
  $compass-initialized: true !global;
  @include debug-compass-configuration;
}
@include compass-initializer;

//  `$options`:
//    A map of compass configuration options.
//    E.g. @include compass-configuration((asset-host: 
// Keywords style ar
// `$reconfigure`:
//    When unset, if compass-configuration is called more than once, a warning will
//    be issued and all calls after the first will be ignored.
//    When set to `false`, all subsequent calls will be ignored without a warning.
//    When set to `true`, the configuration will be added to any existing configuration.
@mixin compass-configuration($options: (), $reconfigure: null, $arguments...) {
  @if not at-stylesheet-root() {
    // this should be @error once that exists.
    @warn "include compass-configuration from the root level of your stylesheet."
  }
  @if not $compass-configured or $reconfigure {
    $options: map-merge($options, keywords($arguments));
    @if length($arguments) > 0 {
      @warn "compass-configuration accepts keyword arguments or a single map of options. Got: #{inspect($arguments)}."
    }
    $invoke: add-configuration($options);
    @include debug-compass-configuration;
    $compass-configured: true !global;
  } @else if $reconfigure == null {
    @warn "Compass was already configured for this stylesheet."
  }
}