Commit Graph

189 Commits

Author SHA1 Message Date
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
f9c5644dcc Ability to create a bare project by passing the --bare option to the create command. 2009-10-24 15:21:08 -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
964304caa4 This fixes a bug in ruby 1.8.7. 2009-10-21 17:59:51 -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
772a58de41 Converted the blueprint stylesheets to css-style properties. 2009-09-28 22:34:41 -07:00
Chris Eppstein
e744c1e0db Convert the compass core framework to css-style property syntax. 2009-09-28 21:52:49 -07:00
Chris Eppstein
6e7f658f3b Move the frameworks directory into lib/compass per gem packaging best practices. 2009-09-02 21:45:15 -07:00
Chris Eppstein
e6b14cf5bb Provide a Compass::VERSION constant. 2009-09-02 21:45:14 -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
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