Commit Graph

84 Commits

Author SHA1 Message Date
Chris Eppstein
bd422403bd Name all configuration sources for debugging purposes. 2009-11-17 08:58:12 -08:00
Chris Eppstein
a281dc1d5f [Command Line] Primary commands get special status in the initial help output. 2009-11-16 17:57:50 -08:00
Chris Eppstein
46ccb5b6e1 [Command Line] Access the Sass Repl (sass -i) with the compass environment loaded. 2009-11-14 10:11:19 -08:00
Chris Eppstein
22cdcf2cb5 Separate the project type default configuration from the installer. 2009-11-14 09:42:37 -08:00
Chris Eppstein
353a225ac5 Allow help, welcome message, and description of an extension to be specified in the manifest file. 2009-11-01 16:49:44 -08:00
Chris Eppstein
8bcdd7360d Each framework pattern can have help now. 2009-11-01 15:26:58 -08:00
Chris Eppstein
c40982c533 Debug configuration with compass config --debug 2009-11-01 09:59:48 -08:00
Chris Eppstein
d1a6490f2c Make the validator work even when you're not in the project directory. 2009-10-30 09:27:59 -07:00
Chris Eppstein
2675f8ed9a CSS Stats for projects so that the complexities can be compared. 2009-10-29 11:35:20 -07:00
Chris Eppstein
d1e1c1756d New compass subcommand: stats. Emits details about your stylesheets. 2009-10-29 01:39:04 -07:00
Chris Eppstein
0d45a3b4aa Subcommand for writing a configuration file. 2009-10-26 18:52:27 -07:00
Chris Eppstein
dd750391be Subcommand for CSS validation. 2009-10-26 18:52:00 -07:00
Chris Eppstein
217c522a92 test scenario for the rails project initialization. 2009-10-25 20:15:31 -07:00
Chris Eppstein
3e99fedab0 Added a watch subcommand. Watching a project can now by done with: compass watch 2009-10-25 00:47:09 -07:00
Chris Eppstein
c8df3f3c42 New subcommand: compile 2009-10-24 17:44:42 -07:00
Chris Eppstein
853e97f2e4 [Command Line] Ability to create a bare project with no stylesheets provided. 2009-10-22 09:46:54 -07:00
Chris Eppstein
8b02a65ab4 Fix bugs in the dry-run mode of project creation. 2009-10-16 17:35:43 -07:00
Chris Eppstein
4c4cc0e55f Handle a call to the command line with no arguments. 2009-10-16 00:56:16 -07:00
Chris Eppstein
8b5868ca00 Grid image subcommand. 2009-10-05 00:56:49 -07:00
Chris Eppstein
12dcccad5d Install subcommand. 2009-10-04 22:22:07 -07:00
Chris Eppstein
f16b12e56b This looks a little better. 2009-10-04 22:18:19 -07:00
Chris Eppstein
b8d380d68c Version subcommand. 2009-10-04 22:17:56 -07:00
Chris Eppstein
515cdb316e Help command as a univeral way to access help information. With help for other commands so far. 2009-10-04 15:58:05 -07:00
Chris Eppstein
dedff936b8 Better output for -h, --help and on option parse error. 2009-10-04 13:45:46 -07:00
Chris Eppstein
0fc9a0e3c8 Subcommand UI for project creation and initialization. 2009-10-04 00:33:36 -07:00
Chris Eppstein
4cc569586b Restructure the existing command line code to allow for the new sub-command based CLI. 2009-09-29 18:35:24 -07:00
Chris Eppstein
b13fd43a2e Require relative to the load path instead of using the more convoluted approach of File.join(File.dirname(__FILE__), ...).
Also, don't ever muck with the load paths or rubygems without first
trying to require the library without doing so.
2009-09-02 21:45:08 -07:00
Chris Eppstein
60ad1e2425 Move project configuration reading out of the command infrastructure and into the configuration helpers. 2009-09-02 10:47:21 -07:00
Chris Eppstein
54a459f28e Allow specification of a height for the grid image. 2009-09-01 20:20:53 -07:00
Chris Eppstein
cb45b6d438 Generalized application framework integration. There are three that ship with compass: Merb, Rails, and StandAlone.
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.
2009-09-01 20:20:23 -07:00
Chris Eppstein
3456f993d4 Merge branch 'master' into edge
* 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.
2009-08-30 11:53:47 -07:00
Chris Eppstein
005f6d4f36 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. 2009-08-30 11:37: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
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
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
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
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
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
e37b3b4d24 Extracted the CSS Validator to a separate gem to keep the compass gem size small. 2009-06-05 10:02:47 -07:00
Sean Schofield
84f657027a Compass now depends on the haml-edge gem instead of haml. 2009-05-06 20:14:31 -04:00
Chris Eppstein
c40566c93b [Command Line] The --force option will now force recompilation. Useful when the stylesheets don't appear to need a recompile. 2009-05-02 15:18:26 -07:00
Chris Eppstein
ddfba8ec83 [Command Line] Fixed bug that caused the --write-configuration option to break. 2009-05-02 15:13:54 -07:00
Chris Eppstein
531c90a1a4 [Command Line] Respect the -q (quiet) option during compilation. Set the quiet option when watching a project for changes. 2009-04-22 12:50:18 -07:00
Chris Eppstein
ab42e46906 Update the copyright. 2009-04-07 00:22:22 -07:00
Chris Eppstein
559b981015 All commands must implement execute now. 2009-04-07 00:22:22 -07:00
Chris Eppstein
591bd882bf There were far too many things trying to be in charge of setting configuration. Now there are less. 2009-04-07 00:22:21 -07:00
Chris Eppstein
6c0a301d91 centralize the config setup and parsing for commands. 2009-04-06 00:34:27 -07:00
Chris Eppstein
e18ed8118b Support for Framework Patterns.
A pattern is a folder in the framework's templates directory. It must
have a manifest file that tells compass what to install and where.
Unlike the project template, a pattern can be stamped out any number of
times.

It is best for pattern stylesheets to only provide example usage to get
the user started. All the core styles for the pattern should be
distributed as part of the framework's stylesheets as mixins to
facilitate easy upgrades and bug fixing on the part of the pattern's
maintainer.

Patterns can install stylesheets, images, javascripts, and arbitrary
files. The installer will put these assets into the correct locations
according to the project type (E.g. rails, stand-alone).

Example Usage:
compass --framework blueprint --pattern buttons
2009-04-03 01:06:23 -07:00