Module: Compass::Configuration

Defined in:
lib/compass/configuration.rb,
lib/compass/configuration/data.rb,
lib/compass/configuration/watch.rb,
lib/compass/configuration/adapters.rb,
lib/compass/configuration/defaults.rb,
lib/compass/configuration/inheritance.rb

Defined Under Namespace

Modules: Adapters, Defaults, Inheritance, Paths Classes: Data, Watch

Constant Summary collapse

ATTRIBUTES =
[
  # What kind of project?
  :project_type,
  # Where is the project?
  :project_path,
  :http_path,
  # Where are the various bits of the project
  attributes_for_directory(:css, :stylesheets),
  attributes_for_directory(:sass, nil),
  attributes_for_directory(:images),
  attributes_for_directory(:generated_images),
  attributes_for_directory(:javascripts),
  attributes_for_directory(:fonts),
  attributes_for_directory(:extensions, nil),
  # Compilation options
  :output_style,
  :sourcemap,
  :environment,
  :relative_assets,
  :sass_options,
  attributes_for_directory(:cache, nil),
  :cache,
  # Helper configuration
  :asset_host,
  :asset_cache_buster,
  :line_comments,
  :color_output,
  :preferred_syntax,
  :disable_warnings,
  :sprite_engine,
  :chunky_png_options
].flatten
ARRAY_ATTRIBUTES =
[
  :additional_import_paths,
  :sprite_load_path,
  :required_libraries,
  :loaded_frameworks,
  :framework_path
]
ARRAY_ATTRIBUTE_OPTIONS =
{
  :sprite_load_path => { :clobbers => true }
}
RUNTIME_READONLY_ATTRIBUTES =
[
  :cache,
  attributes_for_directory(:cache, nil),
  :chunky_png_options,
  :color_output,
  attributes_for_directory(:css, :stylesheets),
  :environment,
  attributes_for_directory(:extensions, nil),
  :framework_path,
  attributes_for_directory(:javascripts),
  :line_comments,
  :loaded_frameworks,
  :output_style,
  :preferred_syntax,
  :project_path,
  :project_type,
  :required_libraries,
  attributes_for_directory(:sass, nil),
  :sass_options,
  :sourcemap,
  :sprite_engine,
].flatten

Class Method Summary collapse

Class Method Details

.add_configuration_property(name, comment = nil, &default) ⇒ Object

Registers a new configuration property. Extensions can use this to add new configuration options to compass.

Parameters:

  • name (Symbol)

    The name of the property.

  • comment (String) (defaults to: nil)

    A comment for the property.

  • default (Proc)

    A method to calculate the default value for the property. The proc is executed in the context of the project’s configuration data.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/compass/configuration.rb', line 21

def add_configuration_property(name, comment = nil, &default)
  ATTRIBUTES << name
  if comment.is_a?(String)
    unless comment[0..0] == "#"
      comment = "# #{comment}"
    end
    unless comment[-1..-1] == "\n"
      comment = comment + "\n"
    end
    Data.class_eval <<-COMMENT
    def comment_for_#{name}
    #{comment.inspect}
    end
    COMMENT
  end
  Data.send(:define_method, :"default_#{name}", &default) if default
  Data.inherited_accessor(name)
  if name.to_s =~ /dir|path/
    Data.strip_trailing_separator(name)
  end
end

.attributes_for_directory(dir_name, http_dir_name = dir_name) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/compass/configuration.rb', line 5

def attributes_for_directory(dir_name, http_dir_name = dir_name)
  [
    "#{dir_name}_dir",
    "#{dir_name}_path",
    ("http_#{http_dir_name}_dir" if http_dir_name),
    ("http_#{http_dir_name}_path" if http_dir_name)
  ].compact.map{|a| a.to_sym}
end

.remove_configuration_property(name) ⇒ Object

For testing purposes



44
45
46
# File 'lib/compass/configuration.rb', line 44

def remove_configuration_property(name)
  ATTRIBUTES.delete(name)
end