compass 0.10.6 → 0.11.alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +6 -6
- data/VERSION.yml +3 -3
- data/examples/blueprint_default/parts/forms.html.haml +8 -0
- data/examples/css3/src/main.scss +4 -0
- data/features/command_line.feature +20 -3
- data/features/step_definitions/command_line_steps.rb +7 -1
- data/frameworks/blueprint/stylesheets/_blueprint.scss +2 -12
- data/frameworks/blueprint/stylesheets/blueprint/_buttons.scss +34 -34
- data/frameworks/blueprint/stylesheets/blueprint/_colors.scss +32 -28
- data/frameworks/blueprint/stylesheets/blueprint/_debug.scss +3 -3
- data/frameworks/blueprint/stylesheets/blueprint/_fancy-type.scss +2 -2
- data/frameworks/blueprint/stylesheets/blueprint/_form.scss +14 -16
- data/frameworks/blueprint/stylesheets/blueprint/_grid.scss +39 -37
- data/frameworks/blueprint/stylesheets/blueprint/_ie.scss +17 -15
- data/frameworks/blueprint/stylesheets/blueprint/_interaction.scss +53 -44
- data/frameworks/blueprint/stylesheets/blueprint/_liquid.scss +26 -26
- data/frameworks/blueprint/stylesheets/blueprint/_print.scss +13 -20
- data/frameworks/blueprint/stylesheets/blueprint/_rtl.scss +32 -44
- data/frameworks/blueprint/stylesheets/blueprint/_scaffolding.scss +10 -12
- data/frameworks/blueprint/stylesheets/blueprint/_typography.scss +18 -32
- data/frameworks/blueprint/stylesheets/blueprint/reset/_utilities.scss +50 -25
- data/frameworks/compass/stylesheets/compass/_css3.scss +1 -15
- data/frameworks/compass/stylesheets/compass/_layout.scss +1 -0
- data/frameworks/compass/stylesheets/compass/_support.scss +4 -0
- data/frameworks/compass/stylesheets/compass/css3/_box-shadow-v2.scss +98 -0
- data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +7 -40
- data/frameworks/compass/stylesheets/compass/css3/_box.scss +0 -1
- data/frameworks/compass/stylesheets/compass/css3/_columns.scss +23 -18
- data/frameworks/compass/stylesheets/compass/css3/_font-face.scss +2 -3
- data/frameworks/compass/stylesheets/compass/css3/_gradient.scss +66 -42
- data/frameworks/compass/stylesheets/compass/css3/_images.scss +52 -0
- data/frameworks/compass/stylesheets/compass/css3/_shared.scss +1 -1
- data/frameworks/compass/stylesheets/compass/css3/_text-shadow-v2.scss +72 -0
- data/frameworks/compass/stylesheets/compass/css3/_transform-v2.scss +584 -0
- data/frameworks/compass/stylesheets/compass/css3/_version-1.scss +16 -0
- data/frameworks/compass/stylesheets/compass/css3/_version-2.scss +16 -0
- data/frameworks/compass/stylesheets/compass/layout/_stretching.scss +24 -0
- data/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +4 -4
- data/frameworks/compass/stylesheets/compass/utilities/lists/_horizontal-list.scss +5 -1
- data/frameworks/compass/stylesheets/compass/utilities/lists/_inline-list.scss +7 -1
- data/frameworks/compass/stylesheets/compass/utilities/tables/_borders.scss +7 -1
- data/lib/compass/actions.rb +1 -1
- data/lib/compass/app_integration/rails/actionpack3/railtie.rb +18 -0
- data/lib/compass/app_integration/rails/configuration_defaults.rb +22 -0
- data/lib/compass/app_integration/rails/installer.rb +77 -34
- data/lib/compass/app_integration/rails/runtime.rb +3 -0
- data/lib/compass/app_integration/stand_alone/configuration_defaults.rb +1 -1
- data/lib/compass/commands/print_version.rb +1 -1
- data/lib/compass/commands/update_project.rb +2 -2
- data/lib/compass/commands/write_configuration.rb +10 -1
- data/lib/compass/compiler.rb +1 -5
- data/lib/compass/configuration.rb +2 -1
- data/lib/compass/configuration/adapters.rb +2 -1
- data/lib/compass/configuration/comments.rb +34 -1
- data/lib/compass/configuration/helpers.rb +3 -7
- data/lib/compass/configuration/paths.rb +1 -1
- data/lib/compass/exec/project_options_parser.rb +4 -0
- data/lib/compass/installers/base.rb +1 -1
- data/lib/compass/logger.rb +4 -2
- data/lib/compass/sass_extensions/functions.rb +6 -3
- data/lib/compass/sass_extensions/functions/colors.rb +58 -0
- data/lib/compass/sass_extensions/functions/constants.rb +1 -1
- data/lib/compass/sass_extensions/functions/display.rb +4 -2
- data/lib/compass/sass_extensions/functions/gradient_support.rb +343 -25
- data/lib/compass/sass_extensions/functions/if.rb +9 -0
- data/lib/compass/sass_extensions/functions/inline_image.rb +9 -3
- data/lib/compass/sass_extensions/functions/trig.rb +27 -0
- data/lib/compass/version.rb +6 -1
- data/lib/rails/init.rb +2 -0
- data/test/command_line_test.rb +6 -9
- data/test/compass_test.rb +2 -0
- data/test/configuration_test.rb +20 -0
- data/test/fixtures/stylesheets/blueprint/css/ie.css +16 -0
- data/test/fixtures/stylesheets/blueprint/css/screen.css +37 -34
- data/test/fixtures/stylesheets/blueprint/css/single-imports/colors.css +5 -5
- data/test/fixtures/stylesheets/blueprint/css/single-imports/form.css +7 -5
- data/test/fixtures/stylesheets/blueprint/css/single-imports/grid.css +5 -5
- data/test/fixtures/stylesheets/blueprint/css/single-imports/ie.css +16 -0
- data/test/fixtures/stylesheets/blueprint/css/single-imports/interaction.css +12 -9
- data/test/fixtures/stylesheets/blueprint/css/single-imports/reset-utilities.css +23 -64
- data/test/fixtures/stylesheets/blueprint/css/single-imports/reset.css +13 -37
- data/test/fixtures/stylesheets/blueprint/css/single-imports/rtl.css +5 -5
- data/test/fixtures/stylesheets/blueprint/css/single-imports/scaffolding.css +4 -4
- data/test/fixtures/stylesheets/blueprint/css/single-imports/typography.css +12 -15
- data/test/fixtures/stylesheets/compass/config.rb +2 -0
- data/test/fixtures/stylesheets/compass/css/box.css +6 -13
- data/test/fixtures/stylesheets/compass/css/box_shadow.css +17 -0
- data/test/fixtures/stylesheets/compass/css/columns.css +47 -0
- data/test/fixtures/stylesheets/compass/css/gradients.css +240 -25
- data/test/fixtures/stylesheets/compass/css/lists.css +12 -4
- data/test/fixtures/stylesheets/compass/css/print.css +1 -1
- data/test/fixtures/stylesheets/compass/css/reset.css +2 -2
- data/test/fixtures/stylesheets/compass/css/stretching.css +66 -0
- data/test/fixtures/stylesheets/compass/css/transform.css +305 -0
- data/test/fixtures/stylesheets/compass/sass/box_shadow.scss +5 -0
- data/test/fixtures/stylesheets/compass/sass/columns.scss +10 -0
- data/test/fixtures/stylesheets/compass/sass/gradients.sass +151 -19
- data/test/fixtures/stylesheets/compass/sass/stretching.sass +34 -0
- data/test/fixtures/stylesheets/compass/sass/transform.scss +87 -0
- data/test/sass_extensions_test.rb +44 -0
- metadata +42 -96
- data/frameworks/_blueprint_deprecated_imports/stylesheets/_blueprint.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_buttons.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_colors.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_debug.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_fancy_type.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_form.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_grid.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_ie.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_interaction.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_link_icons.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_liquid.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_print.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_reset.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_rtl.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_scaffolding.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_screen.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_typography.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/_utilities.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_buttons.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_colors.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_debug.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_fancy_type.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_form.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_grid.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_interaction.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_link_icons.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_liquid.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_reset.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_rtl.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_scaffolding.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_typography.sass +0 -2
- data/frameworks/_blueprint_deprecated_imports/stylesheets/blueprint/modules/_utilities.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/_compass.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/_css3.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/_layout.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/_misc.sass +0 -1
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/_misc.scss +0 -22
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/_reset.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/_utilities.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_background_clip.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_background_origin.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_background_size.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_border_radius.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_box_shadow.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_box_sizing.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_columns.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_font_face.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_gradient.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_inline_block.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_opacity.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_text_shadow.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_transform.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/css3/_transition.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/layout/_sticky_footer.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/_general.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/_links.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/_lists.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/_print.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/_sprites.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/_tables.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/_text.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/general/_clearfix.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/general/_float.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/general/_hacks.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/general/_min.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/general/_reset.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/general/_tabs.sass +0 -0
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/general/_tag_cloud.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/links/_hover_link.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/links/_link_colors.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/links/_unstyled_link.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/lists/_bullets.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/lists/_horizontal_list.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/lists/_inline_list.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/sprites/_sprite_img.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/tables/_alternating_rows_and_columns.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/tables/_borders.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/tables/_scaffolding.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/text/_ellipsis.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/text/_nowrap.sass +0 -2
- data/frameworks/_compass_deprecated_imports/stylesheets/compass/utilities/text/_replacement.sass +0 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
@import "border-radius";
|
|
2
|
+
@import "inline-block";
|
|
3
|
+
@import "opacity";
|
|
4
|
+
@import "box-shadow";
|
|
5
|
+
@import "text-shadow";
|
|
6
|
+
@import "columns";
|
|
7
|
+
@import "box-sizing";
|
|
8
|
+
@import "box";
|
|
9
|
+
@import "images";
|
|
10
|
+
@import "gradient";
|
|
11
|
+
@import "background-clip";
|
|
12
|
+
@import "background-origin";
|
|
13
|
+
@import "background-size";
|
|
14
|
+
@import "font-face";
|
|
15
|
+
@import "transform";
|
|
16
|
+
@import "transition";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
@import "border-radius";
|
|
2
|
+
@import "inline-block";
|
|
3
|
+
@import "opacity";
|
|
4
|
+
@import "box-shadow-v2";
|
|
5
|
+
@import "text-shadow-v2";
|
|
6
|
+
@import "columns";
|
|
7
|
+
@import "box-sizing";
|
|
8
|
+
@import "box";
|
|
9
|
+
@import "images";
|
|
10
|
+
@import "gradient";
|
|
11
|
+
@import "background-clip";
|
|
12
|
+
@import "background-origin";
|
|
13
|
+
@import "background-size";
|
|
14
|
+
@import "font-face";
|
|
15
|
+
@import "transform-v2";
|
|
16
|
+
@import "transition";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
|
|
2
|
+
// stretch element height to specified top and bottom position
|
|
3
|
+
|
|
4
|
+
@mixin stretch-y($offset-top:0, $offset-bottom:0) {
|
|
5
|
+
@include stretch($offset-top, false, $offset-bottom, false);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
// stretch element width to specified left and right position
|
|
10
|
+
|
|
11
|
+
@mixin stretch-x($offset-left:0, $offset-right:0) {
|
|
12
|
+
@include stretch(false, $offset-right, false, $offset-left);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
// shorthand to stretch element height and width
|
|
17
|
+
|
|
18
|
+
@mixin stretch($offset-top:0, $offset-right:0, $offset-bottom:0, $offset-left:0) {
|
|
19
|
+
position: absolute;
|
|
20
|
+
@if $offset-top { top: $offset-top; }
|
|
21
|
+
@if $offset-bottom { bottom: $offset-bottom; }
|
|
22
|
+
@if $offset-left { left: $offset-left; }
|
|
23
|
+
@if $offset-right { right: $offset-right; }
|
|
24
|
+
}
|
|
@@ -8,14 +8,14 @@ $default-has-layout-approach: zoom !default;
|
|
|
8
8
|
// This mixin causes an element matching the selector
|
|
9
9
|
// to gain the "hasLayout" property in internet explorer.
|
|
10
10
|
// More information on [hasLayout](http://reference.sitepoint.com/css/haslayout).
|
|
11
|
-
@mixin has-layout($
|
|
11
|
+
@mixin has-layout($approach: $default-has-layout-approach) {
|
|
12
12
|
@if $legacy-support-for-ie {
|
|
13
|
-
@if $
|
|
13
|
+
@if $approach == zoom {
|
|
14
14
|
@include has-layout-zoom;
|
|
15
|
-
} @else if $
|
|
15
|
+
} @else if $approach == block {
|
|
16
16
|
@include has-layout-block;
|
|
17
17
|
} @else {
|
|
18
|
-
@warn "Unknown has-layout approach: #{$
|
|
18
|
+
@warn "Unknown has-layout approach: #{$approach}";
|
|
19
19
|
@include has-layout-zoom;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -31,6 +31,9 @@
|
|
|
31
31
|
//
|
|
32
32
|
// :last-child is not fully supported
|
|
33
33
|
// see http://www.quirksmode.org/css/contents.html#t29 for the support matrix
|
|
34
|
+
//
|
|
35
|
+
// IE8 ignores rules that are included on the same line as :last-child
|
|
36
|
+
// see http://www.richardscarrott.co.uk/posts/view/ie8-last-child-bug for details
|
|
34
37
|
//
|
|
35
38
|
// Setting `$padding` to `false` disables the padding between list elements
|
|
36
39
|
@mixin horizontal-list-item($padding: 4px, $direction: left) {
|
|
@@ -43,7 +46,8 @@
|
|
|
43
46
|
right: $padding;
|
|
44
47
|
}
|
|
45
48
|
&:first-child, &.first { padding-#{$direction}: 0; }
|
|
46
|
-
&:last-child
|
|
49
|
+
&:last-child { padding-#{opposite-position($direction)}: 0; }
|
|
50
|
+
&.last { padding-#{opposite-position($direction)}: 0; }
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
53
|
|
|
@@ -17,12 +17,18 @@
|
|
|
17
17
|
//
|
|
18
18
|
// `:last-child` is not fully supported.
|
|
19
19
|
// see quirksmode for the [support matrix](http://www.quirksmode.org/css/contents.html#t29).
|
|
20
|
+
//
|
|
21
|
+
// IE8 ignores rules that are included on the same line as :last-child
|
|
22
|
+
// see http://www.richardscarrott.co.uk/posts/view/ie8-last-child-bug for details
|
|
20
23
|
|
|
21
24
|
@mixin comma-delimited-list {
|
|
22
25
|
@include inline-list;
|
|
23
26
|
li {
|
|
24
27
|
&:after { content: ", "; }
|
|
25
|
-
&:last-child
|
|
28
|
+
&:last-child {
|
|
29
|
+
&:after { content: ""; }
|
|
30
|
+
}
|
|
31
|
+
&.last {
|
|
26
32
|
&:after { content: ""; }
|
|
27
33
|
}
|
|
28
34
|
}
|
|
@@ -20,8 +20,14 @@
|
|
|
20
20
|
&:last-child,
|
|
21
21
|
&.last {
|
|
22
22
|
border-right-width: 0px; } }
|
|
23
|
+
|
|
24
|
+
// IE8 ignores rules that are included on the same line as :last-child
|
|
25
|
+
// see http://www.richardscarrott.co.uk/posts/view/ie8-last-child-bug for details
|
|
26
|
+
|
|
23
27
|
tbody, tfoot {
|
|
24
|
-
tr:last-child
|
|
28
|
+
tr:last-child {
|
|
29
|
+
th, td {
|
|
30
|
+
border-bottom-width: 0px; } }
|
|
25
31
|
tr.last {
|
|
26
32
|
th, td {
|
|
27
33
|
border-bottom-width: 0px; } } } }
|
data/lib/compass/actions.rb
CHANGED
|
@@ -18,7 +18,7 @@ module Compass
|
|
|
18
18
|
def directory(dir, options = nil)
|
|
19
19
|
options ||= self.options if self.respond_to?(:options)
|
|
20
20
|
if File.exists?(dir) && File.directory?(dir)
|
|
21
|
-
logger.record :exists, basename(dir) unless options[:quiet]
|
|
21
|
+
# logger.record :exists, basename(dir) unless options[:quiet]
|
|
22
22
|
elsif File.exists?(dir)
|
|
23
23
|
msg = "#{basename(dir)} already exists and is not a directory."
|
|
24
24
|
raise Compass::FilesystemConflict.new(msg)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require 'compass'
|
|
2
|
+
require 'rails'
|
|
3
|
+
module Compass
|
|
4
|
+
class Railtie < Rails::Railtie
|
|
5
|
+
config.to_prepare do
|
|
6
|
+
# putting this here allows compass to detect
|
|
7
|
+
# and adjust to changes to the project configuration
|
|
8
|
+
Compass.reset_configuration!
|
|
9
|
+
Compass::AppIntegration::Rails.initialize!
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
initializer "compass/railtie.configure_rails_initialization" do |app|
|
|
13
|
+
# XXX How do I only do this if it's not done yet?
|
|
14
|
+
# require 'sass/plugin/rack'
|
|
15
|
+
# app.middleware.use Sass::Plugin::Rack
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -7,6 +7,16 @@ module Compass
|
|
|
7
7
|
:rails
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
+
def default_sass_dir
|
|
11
|
+
# XXX Maybe this should be: app/views/stylesheets
|
|
12
|
+
# or maybe layouts should be moved up a level.
|
|
13
|
+
File.join("app", "stylesheets")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def default_css_dir
|
|
17
|
+
File.join("public", "stylesheets")
|
|
18
|
+
end
|
|
19
|
+
|
|
10
20
|
def default_images_dir
|
|
11
21
|
File.join("public", "images")
|
|
12
22
|
end
|
|
@@ -43,6 +53,18 @@ module Compass
|
|
|
43
53
|
File.join("tmp", "sass-cache")
|
|
44
54
|
end
|
|
45
55
|
|
|
56
|
+
def default_project_path
|
|
57
|
+
project_path = Compass::AppIntegration::Rails.root
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def default_http_path
|
|
61
|
+
"/" # XXX Where is/was this stored in the Rails config?
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def default_environment
|
|
65
|
+
Compass::AppIntegration::Rails.env
|
|
66
|
+
end
|
|
67
|
+
|
|
46
68
|
end
|
|
47
69
|
end
|
|
48
70
|
end
|
|
@@ -23,28 +23,36 @@ module Compass
|
|
|
23
23
|
directory File.dirname(config_file)
|
|
24
24
|
write_file config_file, config_contents
|
|
25
25
|
end
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
unless rails3?
|
|
27
|
+
directory File.dirname(targetize('config/initializers/compass.rb'))
|
|
28
|
+
write_file targetize('config/initializers/compass.rb'), initializer_contents
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def rails3?
|
|
33
|
+
File.exists?(targetize('config/application.rb'))
|
|
28
34
|
end
|
|
29
35
|
|
|
30
36
|
def prepare
|
|
31
37
|
write_configuration_files
|
|
32
38
|
end
|
|
33
39
|
|
|
40
|
+
def gem_config_instructions
|
|
41
|
+
if rails3?
|
|
42
|
+
%Q{Add the following to your Gemfile:\n\n gem "compass", ">= #{Compass::VERSION}"}
|
|
43
|
+
else
|
|
44
|
+
%Q{Add the following to your environment.rb:\n\n config.gem "compass", :version => ">= #{Compass::VERSION}"}
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
34
48
|
def finalize(options = {})
|
|
35
49
|
if options[:create]
|
|
36
50
|
puts <<-NEXTSTEPS
|
|
37
51
|
|
|
38
52
|
Congratulations! Your rails project has been configured to use Compass.
|
|
39
|
-
Just
|
|
40
|
-
|
|
41
|
-
In Rails 2.2 & 2.3, add the following to your environment.rb:
|
|
42
|
-
|
|
43
|
-
config.gem "compass", :version => ">= #{Compass::VERSION}"
|
|
53
|
+
Just a couple more things left to do.
|
|
44
54
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
gem "compass", ">= #{Compass::VERSION}"
|
|
55
|
+
#{gem_config_instructions}
|
|
48
56
|
|
|
49
57
|
Then, make sure you restart your server.
|
|
50
58
|
|
|
@@ -54,52 +62,61 @@ NEXTSTEPS
|
|
|
54
62
|
end
|
|
55
63
|
unless options[:prepare]
|
|
56
64
|
if manifest.has_stylesheet?
|
|
57
|
-
puts "\
|
|
65
|
+
puts "\nNow add these lines to the head of your layout(s):\n\n"
|
|
58
66
|
puts stylesheet_links
|
|
59
|
-
puts "\n(You are using haml, aren't you?)"
|
|
60
67
|
end
|
|
61
68
|
end
|
|
62
69
|
end
|
|
63
70
|
|
|
71
|
+
def hamlize?
|
|
72
|
+
# XXX Is there a better way to detect haml in a particular rails project?
|
|
73
|
+
require 'haml'
|
|
74
|
+
true
|
|
75
|
+
rescue LoadError
|
|
76
|
+
false
|
|
77
|
+
end
|
|
64
78
|
|
|
65
79
|
def install_location_for_html(to, options)
|
|
66
80
|
separate("public/#{pattern_name_as_dir}#{to}")
|
|
67
81
|
end
|
|
68
82
|
|
|
69
83
|
def prompt_sass_dir
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
84
|
+
if rails3?
|
|
85
|
+
nil
|
|
86
|
+
else
|
|
87
|
+
recommended_location = separate('app/stylesheets')
|
|
88
|
+
default_location = separate('public/stylesheets/sass')
|
|
89
|
+
print %Q{Compass recommends that you keep your stylesheets in #{recommended_location}
|
|
73
90
|
instead of the Sass default location of #{default_location}.
|
|
74
91
|
Is this OK? (Y/n) }
|
|
75
|
-
|
|
76
|
-
|
|
92
|
+
answer = $stdin.gets.downcase[0]
|
|
93
|
+
answer == ?n ? default_location : recommended_location
|
|
94
|
+
end
|
|
77
95
|
end
|
|
78
96
|
|
|
79
97
|
def prompt_css_dir
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
98
|
+
if rails3?
|
|
99
|
+
nil
|
|
100
|
+
else
|
|
101
|
+
recommended_location = separate("public/stylesheets/compiled")
|
|
102
|
+
default_location = separate("public/stylesheets")
|
|
103
|
+
puts
|
|
104
|
+
print %Q{Compass recommends that you keep your compiled css in #{recommended_location}/
|
|
84
105
|
instead the Sass default of #{default_location}/.
|
|
85
106
|
However, if you're exclusively using Sass, then #{default_location}/ is recommended.
|
|
86
107
|
Emit compiled stylesheets to #{recommended_location}/? (Y/n) }
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
108
|
+
answer = $stdin.gets
|
|
109
|
+
answer = answer.downcase[0]
|
|
110
|
+
answer == ?n ? default_location : recommended_location
|
|
111
|
+
end
|
|
90
112
|
end
|
|
91
113
|
|
|
92
114
|
def config_contents
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
"environment = Compass::AppIntegration::Rails.env\n"
|
|
99
|
-
elsif prop == :output_style
|
|
100
|
-
""
|
|
101
|
-
end
|
|
102
|
-
end
|
|
115
|
+
project_path, Compass.configuration.project_path = Compass.configuration.project_path, nil
|
|
116
|
+
("# This configuration file works with both the Compass command line tool and within Rails.\n" +
|
|
117
|
+
Compass.configuration.serialize)
|
|
118
|
+
ensure
|
|
119
|
+
Compass.configuration.project_path = project_path
|
|
103
120
|
end
|
|
104
121
|
|
|
105
122
|
def initializer_contents
|
|
@@ -118,6 +135,14 @@ NEXTSTEPS
|
|
|
118
135
|
end
|
|
119
136
|
|
|
120
137
|
def stylesheet_links
|
|
138
|
+
if hamlize?
|
|
139
|
+
haml_stylesheet_links
|
|
140
|
+
else
|
|
141
|
+
html_stylesheet_links
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def haml_stylesheet_links
|
|
121
146
|
html = "%head\n"
|
|
122
147
|
manifest.each_stylesheet do |stylesheet|
|
|
123
148
|
# Skip partials.
|
|
@@ -133,6 +158,24 @@ NEXTSTEPS
|
|
|
133
158
|
end
|
|
134
159
|
html
|
|
135
160
|
end
|
|
161
|
+
def html_stylesheet_links
|
|
162
|
+
html = "<head>\n"
|
|
163
|
+
manifest.each_stylesheet do |stylesheet|
|
|
164
|
+
# Skip partials.
|
|
165
|
+
next if File.basename(stylesheet.from)[0..0] == "_"
|
|
166
|
+
ss_line = "<%= stylesheet_link_tag '#{stylesheet_prefix}#{stylesheet.to.sub(/\.sass$/,'.css')}'"
|
|
167
|
+
if stylesheet.options[:media]
|
|
168
|
+
ss_line += ", :media => '#{stylesheet.options[:media]}'"
|
|
169
|
+
end
|
|
170
|
+
ss_line += " %>"
|
|
171
|
+
if stylesheet.options[:condition]
|
|
172
|
+
ss_line = "<!--[if #{stylesheet.options[:condition]}]>" + ss_line + "<![endif]-->"
|
|
173
|
+
end
|
|
174
|
+
html << " #{ss_line}\n"
|
|
175
|
+
end
|
|
176
|
+
html << "</head>"
|
|
177
|
+
html
|
|
178
|
+
end
|
|
136
179
|
end
|
|
137
180
|
end
|
|
138
181
|
end
|
|
@@ -4,6 +4,9 @@ unless defined?(Compass::RAILS_LOADED)
|
|
|
4
4
|
require 'action_pack/version'
|
|
5
5
|
if ActionPack::VERSION::MAJOR >= 3
|
|
6
6
|
# TODO figure something out so image_path works with rails integration
|
|
7
|
+
%w(railtie).each do |lib|
|
|
8
|
+
require "compass/app_integration/rails/actionpack3/#{lib}"
|
|
9
|
+
end
|
|
7
10
|
else
|
|
8
11
|
%w(action_controller sass_plugin urls).each do |lib|
|
|
9
12
|
require "compass/app_integration/rails/actionpack2/#{lib}"
|
|
@@ -81,7 +81,7 @@ Options:
|
|
|
81
81
|
else
|
|
82
82
|
lines = []
|
|
83
83
|
lines << "Compass #{::Compass.version[:string]}"
|
|
84
|
-
lines << "Copyright (c) 2008
|
|
84
|
+
lines << "Copyright (c) 2008-#{Time.now.year} Chris Eppstein"
|
|
85
85
|
lines << "Released under the MIT License."
|
|
86
86
|
puts lines.join("\n")
|
|
87
87
|
end
|
|
@@ -47,10 +47,10 @@ module Compass
|
|
|
47
47
|
|
|
48
48
|
def new_compiler_instance(additional_options = {})
|
|
49
49
|
compiler_opts = Compass.sass_engine_options
|
|
50
|
-
compiler_opts.merge!(:
|
|
51
|
-
:force => options[:force],
|
|
50
|
+
compiler_opts.merge!(:force => options[:force],
|
|
52
51
|
:sass_files => explicit_sass_files,
|
|
53
52
|
:dry_run => options[:dry_run])
|
|
53
|
+
compiler_opts[:quiet] = options[:quiet] if options[:quiet]
|
|
54
54
|
compiler_opts.merge!(additional_options)
|
|
55
55
|
Compass::Compiler.new(working_path,
|
|
56
56
|
Compass.configuration.sass_path,
|
|
@@ -20,6 +20,9 @@ module Compass
|
|
|
20
20
|
opts.on("--debug [PROPERTY]", "Debug your configuration by printing out details.") do |prop|
|
|
21
21
|
self.options[:debug] = prop.nil? ? true : prop.to_sym
|
|
22
22
|
end
|
|
23
|
+
opts.on("-p PROPERTY", "--property PROPERTY", "Print out the value of a particular configuration property") do |prop|
|
|
24
|
+
self.options[:display] = prop.to_sym
|
|
25
|
+
end
|
|
23
26
|
|
|
24
27
|
super
|
|
25
28
|
end
|
|
@@ -40,7 +43,13 @@ module Compass
|
|
|
40
43
|
end
|
|
41
44
|
|
|
42
45
|
def perform
|
|
43
|
-
if options[:
|
|
46
|
+
if options[:display]
|
|
47
|
+
if Compass.configuration.respond_to?(options[:display])
|
|
48
|
+
puts Compass.configuration.send(options[:display])
|
|
49
|
+
else
|
|
50
|
+
raise Compass::Error, "ERROR: configuration property '#{options[:display]}' does not exist"
|
|
51
|
+
end
|
|
52
|
+
elsif options[:debug]
|
|
44
53
|
puts "Configuration sources:"
|
|
45
54
|
c = Compass.configuration
|
|
46
55
|
while c
|
data/lib/compass/compiler.rb
CHANGED
|
@@ -11,6 +11,7 @@ module Compass
|
|
|
11
11
|
self.logger = options.delete(:logger)
|
|
12
12
|
self.options = options
|
|
13
13
|
self.options[:cache_location] ||= determine_cache_location
|
|
14
|
+
Compass.configure_sass_plugin!
|
|
14
15
|
end
|
|
15
16
|
|
|
16
17
|
def determine_cache_location
|
|
@@ -40,7 +41,6 @@ module Compass
|
|
|
40
41
|
|
|
41
42
|
# Returns the sass file that needs to be compiled, if any.
|
|
42
43
|
def out_of_date?
|
|
43
|
-
Compass.configure_sass_plugin! unless Compass.sass_plugin_configured?
|
|
44
44
|
sass_files.zip(css_files).each do |sass_filename, css_filename|
|
|
45
45
|
return sass_filename if Sass::Plugin.send(:stylesheet_needs_update?, css_filename, sass_filename)
|
|
46
46
|
end
|
|
@@ -72,9 +72,6 @@ module Compass
|
|
|
72
72
|
options[:force] = true
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
# We use the Sass::Plugin to check dependencies so we have configure it.
|
|
76
|
-
Compass.configure_sass_plugin! unless Compass.sass_plugin_configured?
|
|
77
|
-
|
|
78
75
|
# Make sure the target directories exist
|
|
79
76
|
target_directories.each {|dir| directory dir}
|
|
80
77
|
|
|
@@ -98,7 +95,6 @@ module Compass
|
|
|
98
95
|
|
|
99
96
|
# Compile one Sass file
|
|
100
97
|
def compile(sass_filename, css_filename)
|
|
101
|
-
logger.record :compile, basename(sass_filename) unless options[:quiet]
|
|
102
98
|
css_content = logger.red do
|
|
103
99
|
engine(sass_filename, css_filename).render
|
|
104
100
|
end
|