All application specific behavior is now centralized within the app integration modules.
Plugins can now provide app integration using the --app command line option and by adding the appropriate classes to the compass module tree.
* master:
[Blueprint] Add mixins for +prepend-top and +append-bottom and corresponding grid classes when generating the css grid classes.
Use FSSM by Travis Tilley to monitor for filesystem changes. On mac this will use filesystem events instead of polling. Fixes an infinite looping issue when compilation errors occur.
frameworks by passing a directory that contains those frameworks. Each
framework can choose to adhere to the naming convention of providing a
'stylesheets' directory and a 'templates' directory, or it can register
itself by providing a ruby file at one of the following locations:
<plugin>/compass_init.rb
<plugin>/lib/<plugin>.rb
<plugin>/<plugin>.rb
The first file found in the above order will be required. The framework
should register itself there using the Compass::Frameworks.register method.
configuration. Configuration is now a singly linked list of configuration objects
that inherit values and defaults from the next configuration instance.
All instances hold a reference to the top of the configuration chain.
There is now a consistent API for reading configuration property values:
<attr>: Reads the fully-resolved attribute after taking
configuration inheritance and defaults into account.
raw_<attr>: reads attribute from a configuration object without
inheritance or defaults.
default_for(<attr>): reads the default value for an attribute
default_for_<attr>: specifies the default value for an attribute.
<attr>_without_default: reads the inherited attribute without applying defaults.
comment_for_<attr>: Specifies a comment that will be emitted above the
property when serializing the configuration to a file.
Additionally, method_missing and respond_to both work down the
configuration chain, so any method that is added to a configuration
instance, can be accessed from the top level.
The distinction between default and explicitly set values allows compass
to more correctly manage the serialization of attributes when creating
configuration files for projects.
The compass configuration can still be accessed via
Compass.configuration, however, the configuration object is no longer a
singleton. This means that you can build several configuration chains
to track several projects at once. This should ease the use of compass
in other frameworks and plugins that want to use compass internally.
All images will now be installed using binary mode. Additionally, any file can
be installed in binary mode if the manifest specifies the option :binary => true
for that file.