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.



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 "    def comment_for_\#{name}\n    \#{comment.inspect}\n    end\n    COMMENT\n  end\n  Data.send(:define_method, :\"default_\#{name}\", &default) if default\n  Data.inherited_accessor(name)\n  if name.to_s =~ /dir|path/\n    Data.strip_trailing_separator(name)\n  end\nend\n"

.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