Commit Graph

164 Commits

Author SHA1 Message Date
Chris Eppstein
92464c5f6a More flexible manifests that can see the installation options and might
not even have any stylesheets or require a project configuration file.
2009-08-29 15:14:52 -07:00
Chris Eppstein
44e810e840 Allow stand-alone projects to have their own extensions directory. 2009-08-29 15:14:52 -07:00
Chris Eppstein
bc27541378 New framework discovery mechanism: Compass can now load any number of
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.
2009-08-29 15:14:51 -07:00
Chris Eppstein
a0036ec0f1 remove some blank lines. 2009-08-29 15:14:51 -07:00
Chris Eppstein
5d8e8cae02 Fixed bug related to how the project_type was defaulted. 2009-08-29 15:13:51 -07:00
Chris Eppstein
379118cb1e Don't set the project type explicitly, instead default it to :stand_alone via the configuration object. 2009-08-29 13:20:32 -07:00
Chris Eppstein
dd867d668a Use the http_stylesheets_path instead of hard coding. 2009-08-29 13:20:32 -07:00
Chris Eppstein
f59ca512ce Refactor of the internal datastructures used to access project
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.
2009-08-29 13:20:32 -07:00
Chris Eppstein
ac264606c8 DRY up the loading of the installer modules. 2009-08-29 13:20:32 -07:00
Chris Eppstein
1450f39d8c Renamed the configuration helper method root_relative to http_root_relative for consistency. 2009-08-29 13:20:32 -07:00
Chris Eppstein
b7ba05f7c1 [Extensions] Compass extensions can now process the content they deliver through ERB. 2009-08-29 13:20:32 -07:00
Chris Eppstein
c9454190e7 [Compass Core] Fixed the append_selector function to allow comma-delimited selectors for both arguments instead of just the first. 2009-08-29 13:20:31 -07:00
Chris Eppstein
f27e184c7f [Core] The compass configuration class is no longer a singleton. This allows other projects to manage multiple compass projects by creating multiple configurations within the same ruby process. 2009-08-29 13:20:31 -07:00
Chris Eppstein
1a9156c010 [Extensions] Compass extensions can now deliver html into a compass project which can be authored in haml if they prefer. 2009-08-29 13:20:31 -07:00
Jacques Crocker
73158b4c3e #36 Retain existing Merb::Plugins.config[:sass][:template_location] settings when setting Sass::Plugin.options[:template_location] with Compass defined paths 2009-08-29 13:20:31 -07:00
Jacques Crocker
4ffa08cc42 Fixing Merb Integration (use Merb::Plugins.config instead of Merb::Config) 2009-08-29 13:20:31 -07:00
Chris Eppstein
3681187e6c Just do a simple require for sass, haml-edge will have to be loaded by the user explicitly if they want that.
Fall back to loading rubygems to load sass if it cannot be loaded.
2009-08-29 13:20:31 -07:00
Chris Eppstein
48c7d45c30 [Compass Core] A new helper function stylesheet_url(path) can now be used to refer to assets that are relative to the css directory. 2009-08-29 13:19:36 -07:00
Chris Eppstein
bbe8366350 [Configuration] A more logical and consistent approach to http path locations. 2009-08-29 13:19:36 -07:00
Chris Eppstein
390674ba83 [Configuration] [Command Line] Whether to generate relative links to assets is now controlled by a separate configuration flag and can be set via a command-line switch. 2009-08-29 13:19:36 -07:00
priit.mx.ee
c11be2eac6 Ruby 1.9.1 fix: binding for parse_string 2009-08-22 08:25:39 -07:00
Chris Eppstein
50aa936e02 [Rails] [Closes #32] Don't suggest creating a stylesheet link to partials. 2009-08-22 08:25:32 -07:00
Chris Eppstein
0492fc9969 Binary mode support for proper handling of binary files on Windows.
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.
2009-08-16 11:17:27 -07:00
Chris Eppstein
59a6067b3a Load haml-edge if it's all new and shiny. Closes GH-26. 2009-07-09 13:00:01 -07:00
Chris Eppstein
7fba6028d8 [Rails] Fixed a bug in rails integration if the request is not set on the controller. 2009-07-09 12:49:47 -07:00
Chris Eppstein
0809dd64dd Merge commit 'filiptepper/master'
* commit 'filiptepper/master':
  haml 2.2 dependency
2009-07-08 01:15:42 -07:00
Filip Tepper
85bb337f50 haml 2.2 dependency 2009-07-08 07:57:53 +02:00
Chris Eppstein
48a0356ad8 [Installer] Fixed a bug that caused the output after installing to not display the conditional comments. 2009-07-07 11:31:03 -07:00
Chris Eppstein
94e9696b30 [Rails] When installing into a new rails project, set the http paths correctly for stylesheets and javascripts. 2009-07-07 11:18:58 -07:00
Chris Eppstein
b7a9772efb [Sass Extensions] Fixed a copy & paste error that caused the http_images_path to not get picked up unless the http_stylesheets_path was also set. 2009-07-07 11:13:19 -07:00
Chris Eppstein
6b8bbd22b1 [Rails] Fixed a bug in asset hosts support when compiling outside the context of a controller. 2009-07-06 23:34:41 -07:00
Chris Eppstein
71d5ae8544 [Rails] If it exists, the compass test case should inherit from ActiveSupport::TestCase. 2009-07-06 21:46:00 -07:00
Chris Eppstein
43cb64d77e [Rails] Fixed bug introduced in 0.8.3. 2009-07-06 11:47:02 -07:00
Chris Eppstein
ff5c850014 [Compass Core] A new helper function stylesheet_url(path) can now be used to refer to assets that are relative to the css directory. 2009-07-06 07:18:25 -07:00
Chris Eppstein
21cfce33db [Extensions] When installing a file, the :like option can now be set to have it installed into the same location as what it is like. 2009-07-06 07:18:25 -07:00
Chris Eppstein
6555ab3952 [Configuration] A more logical and consistent approach to http path locations. 2009-07-06 07:18:25 -07:00
Chris Eppstein
956c437fe9 [Configuration] [Command Line] Whether to generate relative links to assets is now controlled by a separate configuration flag and can be set via a command-line switch. 2009-07-06 07:18:25 -07:00
David Turnbull
07ade33da3 Fix 'script' 'javascript' mismatch. Allow use of javascript command in manifest. 2009-07-05 17:29:30 -07:00
Joe Wasson
ebfa4709b1 Fix bug #15: Errno:EACCES on Windows when trying to compile identical file (on watch)
Per https://prototype.lighthouseapp.com/projects/8888/tickets/16-permission-denied-building-via-sprockets-on-windows you can't do File.utime on an open file in Windows.  Changed the reading of the existing file to IO.read() which will close the file on completion of the read.
2009-07-04 22:30:33 -07:00
Chris Eppstein
f111bd73d5 [Command Line] Fixed a bug in --watch mode that caused changes to partials to not be noticed. 2009-06-28 16:25:28 -07:00
Chris Eppstein
d2acd343b8 [Command Line] Allow the configuration file being read to be specified explicitly. This also affects the output location of the --write-configuration command. 2009-06-28 14:41:02 -07:00
Chris Eppstein
f742f26208 [Command Line] Cleanup of the command-line usage output to make things more digestable. 2009-06-28 14:38:36 -07:00
Chris Eppstein
69cf32f70a [Configuration] The compass configuration can now be placed in .compass/config.rb if you so choose. 2009-06-28 14:33:55 -07:00
Chris Eppstein
84aec053d0 [Command Line] Allow the images and javascripts directories to be set via the command line. 2009-06-28 13:04:56 -07:00
Chris Eppstein
5a015b3824 [Sass Extensions] The inline_image() function can now be used to generate a data url that embeds the image data in the generated css file.
This function works like image_url() in that it expects the image to be a path relative to the images directory.

There are clear advantages and disadvantages to this approach.
See http://en.wikipedia.org/wiki/Data_URI_scheme for more details.

NOTE: Neither IE6 nor IE7 support data urls.
Using this approach with large images is discouraged.
2009-06-28 12:29:19 -07:00
Chris Eppstein
0a232bd922 [Compiler] Rewrite of the watch command that adds the following improvements:
1. For robustness, recompile is now based on comparison of corresponding css/sass file timestamps.
2. If a sass file is removed, the corresponding css file is automatically deleted.
3. CSS files will be automatically recompiled if removed. It is no longer necessary to resave the sass file.
4. First time compile is not performed if not necessary.
2009-06-27 18:45:34 -07:00
Chris Eppstein
15ebbfef30 Print a message when updating a project that has no files. They probably meant to install but forgot the directory argument. Closes #2. 2009-06-27 18:28:26 -07:00
Chris Eppstein
802bca6174 [Configuration] Allow additional sass options to be specified in the compass configuration using the sass_options property. 2009-06-27 13:05:30 -07:00
Chris Eppstein
047be06a0a [Configuration] Allow additional import paths to be declared within the compass configuration. 2009-06-27 12:15:28 -07:00
Chris Eppstein
ef47f3dd9d [Sass Extensions] Allow the asset host and cache busting strategies to be defined as part of the compass configuration. Closes #20. 2009-06-26 12:23:43 -07:00