compass 0.11.3 → 0.11.4
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/VERSION.yml +1 -1
 - data/features/command_line.feature +9 -0
 - data/features/step_definitions/command_line_steps.rb +7 -0
 - data/frameworks/blueprint/stylesheets/blueprint/_debug.scss +2 -2
 - data/frameworks/blueprint/stylesheets/blueprint/_form.scss +1 -1
 - data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +4 -1
 - data/frameworks/compass/stylesheets/compass/css3/_font-face.scss +1 -1
 - data/frameworks/compass/stylesheets/compass/css3/_images.scss +1 -4
 - data/frameworks/compass/stylesheets/compass/css3/_opacity.scss +1 -4
 - data/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +2 -0
 - data/frameworks/compass/stylesheets/compass/css3/_transition.scss +35 -1
 - data/frameworks/compass/stylesheets/compass/typography/_text.scss +1 -0
 - data/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +74 -14
 - data/frameworks/compass/stylesheets/compass/typography/text/_force-wrap.scss +12 -0
 - data/lib/compass.rb +1 -1
 - data/lib/compass/commands/base.rb +9 -1
 - data/lib/compass/commands/project_base.rb +2 -2
 - data/lib/compass/commands/update_project.rb +2 -1
 - data/lib/compass/compiler.rb +5 -2
 - data/lib/compass/configuration.rb +2 -1
 - data/lib/compass/configuration/adapters.rb +2 -2
 - data/lib/compass/configuration/defaults.rb +4 -0
 - data/lib/compass/exec/sub_command_ui.rb +4 -3
 - data/lib/compass/sass_extensions/functions/inline_image.rb +2 -0
 - data/lib/compass/sass_extensions/sprites/engines/chunky_png_engine.rb +3 -2
 - data/test/fixtures/stylesheets/blueprint/css/screen.css +5 -5
 - data/test/fixtures/stylesheets/blueprint/css/single-imports/debug.css +4 -4
 - data/test/fixtures/stylesheets/blueprint/css/single-imports/form.css +1 -1
 - data/test/fixtures/stylesheets/compass/css/force-wrap.css +9 -0
 - data/test/fixtures/stylesheets/compass/css/gradients.css +0 -3
 - data/test/fixtures/stylesheets/compass/css/opacity.css +0 -1
 - data/test/fixtures/stylesheets/compass/sass/force-wrap.scss +3 -0
 - data/test/fixtures/stylesheets/compass/tmp/border_radius.css +23 -0
 - data/test/fixtures/stylesheets/compass/tmp/box.css +103 -0
 - data/test/fixtures/stylesheets/compass/tmp/box_shadow.css +17 -0
 - data/test/fixtures/stylesheets/compass/tmp/columns.css +47 -0
 - data/test/fixtures/stylesheets/compass/tmp/fonts.css +4 -0
 - data/test/fixtures/stylesheets/compass/tmp/force-wrap.css +9 -0
 - data/test/fixtures/stylesheets/compass/tmp/gradients.css +576 -0
 - data/test/fixtures/stylesheets/compass/tmp/grid_background.css +78 -0
 - data/test/fixtures/stylesheets/compass/tmp/image_size.css +15 -0
 - data/test/fixtures/stylesheets/compass/tmp/images.css +8 -0
 - data/test/fixtures/stylesheets/compass/tmp/layout.css +16 -0
 - data/test/fixtures/stylesheets/compass/tmp/legacy_clearfix.css +26 -0
 - data/test/fixtures/stylesheets/compass/tmp/lists.css +153 -0
 - data/test/fixtures/stylesheets/compass/tmp/opacity.css +3 -0
 - data/test/fixtures/stylesheets/compass/tmp/pie.css +28 -0
 - data/test/fixtures/stylesheets/compass/tmp/print.css +11 -0
 - data/test/fixtures/stylesheets/compass/tmp/reset.css +60 -0
 - data/test/fixtures/stylesheets/compass/tmp/sprites.css +1262 -0
 - data/test/fixtures/stylesheets/compass/tmp/stretching.css +66 -0
 - data/test/fixtures/stylesheets/compass/tmp/text_shadow.css +14 -0
 - data/test/fixtures/stylesheets/compass/tmp/transform.css +333 -0
 - data/test/fixtures/stylesheets/compass/tmp/utilities.css +36 -0
 - data/test/fixtures/stylesheets/compass/tmp/vertical_rhythm.css +42 -0
 - metadata +78 -3
 
    
        data/VERSION.yml
    CHANGED
    
    
| 
         @@ -63,6 +63,15 @@ Feature: Command Line 
     | 
|
| 
       63 
63 
     | 
    
         
             
                And I am told that I can place stylesheets in the sass subdirectory
         
     | 
| 
       64 
64 
     | 
    
         
             
                And I am told how to compile my sass stylesheets
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
      
 66 
     | 
    
         
            +
              Scenario: Compiling a project with errors
         
     | 
| 
      
 67 
     | 
    
         
            +
                Given I am using the existing project in test/fixtures/stylesheets/compass
         
     | 
| 
      
 68 
     | 
    
         
            +
                And the project has a file named "sass/error.scss" containing:
         
     | 
| 
      
 69 
     | 
    
         
            +
                  """
         
     | 
| 
      
 70 
     | 
    
         
            +
                    .broken {
         
     | 
| 
      
 71 
     | 
    
         
            +
                  """
         
     | 
| 
      
 72 
     | 
    
         
            +
                When I run: compass compile
         
     | 
| 
      
 73 
     | 
    
         
            +
                Then the command exits with a non-zero error code
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
       66 
75 
     | 
    
         
             
              Scenario: Creating a bare project with a framework
         
     | 
| 
       67 
76 
     | 
    
         
             
                When I create a project using: compass create bare_project --using blueprint --bare
         
     | 
| 
       68 
77 
     | 
    
         
             
                Then an error message is printed out: A bare project cannot be created when a framework is specified.
         
     | 
| 
         @@ -53,6 +53,13 @@ Given /^I should clean up the directory: (\w+)$/ do |directory| 
     | 
|
| 
       53 
53 
     | 
    
         
             
              @cleanup_directories << directory
         
     | 
| 
       54 
54 
     | 
    
         
             
            end
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
      
 56 
     | 
    
         
            +
            Given %r{^the project has a file named "([^"]*)" containing:$} do |arg1, string|
         
     | 
| 
      
 57 
     | 
    
         
            +
              File.open(arg1, "w") do |f|
         
     | 
| 
      
 58 
     | 
    
         
            +
                f << string
         
     | 
| 
      
 59 
     | 
    
         
            +
              end
         
     | 
| 
      
 60 
     | 
    
         
            +
            end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
       56 
63 
     | 
    
         
             
            # When Actions are performed
         
     | 
| 
       57 
64 
     | 
    
         
             
            When /^I create a project using: compass create ([^\s]+) ?(.+)?$/ do |dir, args|
         
     | 
| 
       58 
65 
     | 
    
         
             
              @cleanup_directories << dir
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            @import "compass/layout/grid-background";
         
     | 
| 
       2 
     | 
    
         
            -
            @import " 
     | 
| 
      
 2 
     | 
    
         
            +
            @import "grid", "typography";
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            // Shows a background that can be used to check grid alignment.
         
     | 
| 
       5 
5 
     | 
    
         
             
            // By default this is a pure css version that only works in browsers
         
     | 
| 
         @@ -14,7 +14,7 @@ 
     | 
|
| 
       14 
14 
     | 
    
         
             
                  $total    : $blueprint-grid-columns,
         
     | 
| 
       15 
15 
     | 
    
         
             
                  $column   : $blueprint-grid-width,
         
     | 
| 
       16 
16 
     | 
    
         
             
                  $gutter   : $blueprint-grid-margin,
         
     | 
| 
       17 
     | 
    
         
            -
                  $baseline :  
     | 
| 
      
 17 
     | 
    
         
            +
                  $baseline : $blueprint-font-size * 1.5
         
     | 
| 
       18 
18 
     | 
    
         
             
                );
         
     | 
| 
       19 
19 
     | 
    
         
             
              }
         
     | 
| 
       20 
20 
     | 
    
         
             
            }
         
     | 
| 
         @@ -24,7 +24,10 @@ $default-box-shadow-spread : false !default; 
     | 
|
| 
       24 
24 
     | 
    
         
             
            // The default shadow inset: inset or false (for standard shadow).
         
     | 
| 
       25 
25 
     | 
    
         
             
            $default-box-shadow-inset : false !default;
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
            // Provides cross-browser for Webkit, Gecko, and CSS3 box shadows when one or more box 
     | 
| 
      
 27 
     | 
    
         
            +
            // Provides cross-browser for Webkit, Gecko, and CSS3 box shadows when one or more box
         
     | 
| 
      
 28 
     | 
    
         
            +
            // shadows are needed.
         
     | 
| 
      
 29 
     | 
    
         
            +
            // Each shadow argument should adhere to the standard css3 syntax for the
         
     | 
| 
      
 30 
     | 
    
         
            +
            // box-shadow property.
         
     | 
| 
       28 
31 
     | 
    
         
             
            @mixin box-shadow(
         
     | 
| 
       29 
32 
     | 
    
         
             
              $shadow-1 : default,
         
     | 
| 
       30 
33 
     | 
    
         
             
              $shadow-2 : false,
         
     | 
| 
         @@ -15,7 +15,7 @@ 
     | 
|
| 
       15 
15 
     | 
    
         
             
            //
         
     | 
| 
       16 
16 
     | 
    
         
             
            // Example:
         
     | 
| 
       17 
17 
     | 
    
         
             
            //
         
     | 
| 
       18 
     | 
    
         
            -
            //      
     | 
| 
      
 18 
     | 
    
         
            +
            //     @include font-face("this name", font-files("this.woff", woff, "this.otf", opentype), "this.eot")
         
     | 
| 
       19 
19 
     | 
    
         
             
            @mixin font-face(
         
     | 
| 
       20 
20 
     | 
    
         
             
              $name, 
         
     | 
| 
       21 
21 
     | 
    
         
             
              $font-files, 
         
     | 
| 
         @@ -83,10 +83,7 @@ 
     | 
|
| 
       83 
83 
     | 
    
         
             
            @mixin filter-gradient($start-color, $end-color, $orientation: vertical) {
         
     | 
| 
       84 
84 
     | 
    
         
             
              @include has-layout;
         
     | 
| 
       85 
85 
     | 
    
         
             
              $gradient-type: if($orientation == vertical, 0, 1);
         
     | 
| 
       86 
     | 
    
         
            -
              @if $legacy-support-for-ie8 {
         
     | 
| 
       87 
     | 
    
         
            -
                -ms-filter: "progid:DXImageTransform.Microsoft.gradient(gradientType=#{$gradient-type}, startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}')";
         
     | 
| 
       88 
     | 
    
         
            -
              }
         
     | 
| 
       89 
     | 
    
         
            -
              @if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
         
     | 
| 
      
 86 
     | 
    
         
            +
              @if $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8 {
         
     | 
| 
       90 
87 
     | 
    
         
             
                filter: progid:DXImageTransform.Microsoft.gradient(gradientType=#{$gradient-type}, startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}');
         
     | 
| 
       91 
88 
     | 
    
         
             
              }
         
     | 
| 
       92 
89 
     | 
    
         
             
            }
         
     | 
| 
         @@ -6,10 +6,7 @@ 
     | 
|
| 
       6 
6 
     | 
    
         
             
            //         A number between 0 and 1, where 0 is transparent and 1 is opaque.
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            @mixin opacity($opacity) {
         
     | 
| 
       9 
     | 
    
         
            -
              @if $legacy-support-for-ie8 {
         
     | 
| 
       10 
     | 
    
         
            -
                -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=#{round($opacity * 100)})";
         
     | 
| 
       11 
     | 
    
         
            -
              }
         
     | 
| 
       12 
     | 
    
         
            -
              @if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
         
     | 
| 
      
 9 
     | 
    
         
            +
              @if $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8 {
         
     | 
| 
       13 
10 
     | 
    
         
             
                filter: unquote("progid:DXImageTransform.Microsoft.Alpha(Opacity=#{round($opacity * 100)})");
         
     | 
| 
       14 
11 
     | 
    
         
             
              }
         
     | 
| 
       15 
12 
     | 
    
         
             
              opacity: $opacity;
         
     | 
| 
         @@ -9,6 +9,8 @@ $default-text-shadow-v-offset: 0px  !default; 
     | 
|
| 
       9 
9 
     | 
    
         
             
            $default-text-shadow-blur:     1px  !default;
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            // Provides cross-browser text shadows when one or more shadows are needed.
         
     | 
| 
      
 12 
     | 
    
         
            +
            // Each shadow argument should adhere to the standard css3 syntax for the
         
     | 
| 
      
 13 
     | 
    
         
            +
            // text-shadow property.
         
     | 
| 
       12 
14 
     | 
    
         
             
            @mixin text-shadow(
         
     | 
| 
       13 
15 
     | 
    
         
             
              $shadow-1 : default,
         
     | 
| 
       14 
16 
     | 
    
         
             
              $shadow-2 : false,
         
     | 
| 
         @@ -72,7 +72,7 @@ $default-transition-delay: false !default; 
     | 
|
| 
       72 
72 
     | 
    
         | 
| 
       73 
73 
     | 
    
         
             
            // Transition all-in-one shorthand
         
     | 
| 
       74 
74 
     | 
    
         | 
| 
       75 
     | 
    
         
            -
            @mixin transition(
         
     | 
| 
      
 75 
     | 
    
         
            +
            @mixin single-transition(
         
     | 
| 
       76 
76 
     | 
    
         
             
              $properties: $default-transition-property,
         
     | 
| 
       77 
77 
     | 
    
         
             
              $duration: $default-transition-duration,
         
     | 
| 
       78 
78 
     | 
    
         
             
              $function: $default-transition-function,
         
     | 
| 
         @@ -83,3 +83,37 @@ $default-transition-delay: false !default; 
     | 
|
| 
       83 
83 
     | 
    
         
             
              @if $function { @include transition-timing-function($function); }
         
     | 
| 
       84 
84 
     | 
    
         
             
              @if $delay { @include transition-delay($delay); }
         
     | 
| 
       85 
85 
     | 
    
         
             
            }
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
            @mixin transition(
         
     | 
| 
      
 88 
     | 
    
         
            +
              $transition-1 : default,
         
     | 
| 
      
 89 
     | 
    
         
            +
              $transition-2 : false,
         
     | 
| 
      
 90 
     | 
    
         
            +
              $transition-3 : false,
         
     | 
| 
      
 91 
     | 
    
         
            +
              $transition-4 : false,
         
     | 
| 
      
 92 
     | 
    
         
            +
              $transition-5 : false,
         
     | 
| 
      
 93 
     | 
    
         
            +
              $transition-6 : false,
         
     | 
| 
      
 94 
     | 
    
         
            +
              $transition-7 : false,
         
     | 
| 
      
 95 
     | 
    
         
            +
              $transition-8 : false,
         
     | 
| 
      
 96 
     | 
    
         
            +
              $transition-9 : false,
         
     | 
| 
      
 97 
     | 
    
         
            +
              $transition-10: false
         
     | 
| 
      
 98 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 99 
     | 
    
         
            +
              $legacy: (type-of($transition-1) == string and type-of(if($transition-2, $transition-2, 0)) == number and type-of(if($transition-3, $transition-3, '')) == string and type-of(if($transition-4, $transition-4, 0)) == number and ($transition-2 or $transition-3 or $transition-4));
         
     | 
| 
      
 100 
     | 
    
         
            +
              @if $legacy {
         
     | 
| 
      
 101 
     | 
    
         
            +
                @warn "Passing separate arguments for a single transition to transition is deprecated. " +
         
     | 
| 
      
 102 
     | 
    
         
            +
                      "Pass the values as a single space-separated list, or use the single-transition mixin.";
         
     | 
| 
      
 103 
     | 
    
         
            +
                @include single-transition(
         
     | 
| 
      
 104 
     | 
    
         
            +
                  if($transition-1, $transition-1, $default-transition-property),
         
     | 
| 
      
 105 
     | 
    
         
            +
                  if($transition-2, $transition-2, $default-transition-duration),
         
     | 
| 
      
 106 
     | 
    
         
            +
                  if($transition-3, $transition-3, $default-transition-funciton),
         
     | 
| 
      
 107 
     | 
    
         
            +
                  if($transition-4, $transition-4, $default-transition-delay)
         
     | 
| 
      
 108 
     | 
    
         
            +
                );
         
     | 
| 
      
 109 
     | 
    
         
            +
              }
         
     | 
| 
      
 110 
     | 
    
         
            +
              @else {
         
     | 
| 
      
 111 
     | 
    
         
            +
                @if $transition-1 == default {
         
     | 
| 
      
 112 
     | 
    
         
            +
                  $transition-1 : -compass-space-list(compact($default-transition-property, $default-transition-duration, $default-transition-function, $default-transition-delay));
         
     | 
| 
      
 113 
     | 
    
         
            +
                }
         
     | 
| 
      
 114 
     | 
    
         
            +
                $transition : compact($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10);
         
     | 
| 
      
 115 
     | 
    
         
            +
                @include experimental(transition, $transition,
         
     | 
| 
      
 116 
     | 
    
         
            +
                  -moz, -webkit, -o, not -ms, not -khtml, official
         
     | 
| 
      
 117 
     | 
    
         
            +
                );
         
     | 
| 
      
 118 
     | 
    
         
            +
              }
         
     | 
| 
      
 119 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -10,22 +10,47 @@ $default-rhythm-border-style: solid !default; 
     | 
|
| 
       10 
10 
     | 
    
         
             
            // The IE font ratio is a fact of life. Deal with it.
         
     | 
| 
       11 
11 
     | 
    
         
             
            $ie-font-ratio: 16px / 100%;
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
            // Set to false if you want to use absolute pixes in sizing your typography.
         
     | 
| 
      
 14 
     | 
    
         
            +
            $relative-font-sizing: true !default;
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            // Ensure there is at least this many pixels
         
     | 
| 
      
 17 
     | 
    
         
            +
            // of vertical padding above and below the text.
         
     | 
| 
      
 18 
     | 
    
         
            +
            $min-line-padding: 2px;
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            // $base-font-size but in your output unit of choice.
         
     | 
| 
      
 21 
     | 
    
         
            +
            // Defaults to 1em when `$relative-font-sizing`
         
     | 
| 
      
 22 
     | 
    
         
            +
            $font-unit: if($relative-font-sizing, 1em, $base-font-size) !default;
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       13 
24 
     | 
    
         
             
            // The basic unit of font rhythm
         
     | 
| 
       14 
     | 
    
         
            -
            $base-rhythm-unit: $base-line-height / $base-font-size *  
     | 
| 
      
 25 
     | 
    
         
            +
            $base-rhythm-unit: $base-line-height / $base-font-size * $font-unit;
         
     | 
| 
       15 
26 
     | 
    
         | 
| 
       16 
27 
     | 
    
         
             
            // The leader is the amount of whitespace in a line.
         
     | 
| 
       17 
28 
     | 
    
         
             
            // It might be useful in your calculations
         
     | 
| 
       18 
     | 
    
         
            -
            $base-leader: ($base-line-height - $base-font-size) *  
     | 
| 
      
 29 
     | 
    
         
            +
            $base-leader: ($base-line-height - $base-font-size) * $font-unit / $base-font-size;
         
     | 
| 
       19 
30 
     | 
    
         | 
| 
       20 
31 
     | 
    
         
             
            // The half-leader is the amount of whitespace above and below a line.
         
     | 
| 
       21 
32 
     | 
    
         
             
            // It might be useful in your calculations
         
     | 
| 
       22 
33 
     | 
    
         
             
            $base-half-leader: $base-leader / 2;
         
     | 
| 
       23 
34 
     | 
    
         | 
| 
      
 35 
     | 
    
         
            +
            // True if a number has a relative unit
         
     | 
| 
      
 36 
     | 
    
         
            +
            @function relative-unit($number) {
         
     | 
| 
      
 37 
     | 
    
         
            +
              @return unit($number) == "%" or unit($number) == "em" or unit($number) == "rem"
         
     | 
| 
      
 38 
     | 
    
         
            +
            }
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            // True if a number has an absolute unit
         
     | 
| 
      
 41 
     | 
    
         
            +
            @function absolute-unit($number) {
         
     | 
| 
      
 42 
     | 
    
         
            +
              @return not (relative-unit($number) or unitless($number));
         
     | 
| 
      
 43 
     | 
    
         
            +
            }
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            @if $relative-font-sizing and not relative-unit($font-unit) {
         
     | 
| 
      
 46 
     | 
    
         
            +
              @warn "$relative-font-sizing is true but $font-unit is set to #{$font-unit} which is not a relative unit.";
         
     | 
| 
      
 47 
     | 
    
         
            +
            }
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
       24 
49 
     | 
    
         
             
            // Establishes a font baseline for the given font-size in pixels
         
     | 
| 
       25 
50 
     | 
    
         
             
            @mixin establish-baseline($font-size: $base-font-size) {
         
     | 
| 
       26 
51 
     | 
    
         
             
              body {
         
     | 
| 
       27 
52 
     | 
    
         
             
                font-size: $font-size / $ie-font-ratio;
         
     | 
| 
       28 
     | 
    
         
            -
                @include adjust-leading-to(1, $font-size);
         
     | 
| 
      
 53 
     | 
    
         
            +
                @include adjust-leading-to(1, if($relative-font-sizing, $font-size, $base-font-size));
         
     | 
| 
       29 
54 
     | 
    
         
             
              }
         
     | 
| 
       30 
55 
     | 
    
         
             
              html>body {
         
     | 
| 
       31 
56 
     | 
    
         
             
                font-size: $font-size;
         
     | 
| 
         @@ -42,13 +67,19 @@ $base-half-leader: $base-leader / 2; 
     | 
|
| 
       42 
67 
     | 
    
         
             
            // font size should use up. Does not have to be an integer, but it defaults
         
     | 
| 
       43 
68 
     | 
    
         
             
            // to the smallest integer that is large enough to fit the font.
         
     | 
| 
       44 
69 
     | 
    
         
             
            // Use $from_size to adjust from a non-base font-size.
         
     | 
| 
       45 
     | 
    
         
            -
            @mixin adjust-font-size-to($to-size, $lines:  
     | 
| 
       46 
     | 
    
         
            -
              font- 
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
      
 70 
     | 
    
         
            +
            @mixin adjust-font-size-to($to-size, $lines: lines-for-font-size($to-size), $from-size: $base-font-size) {
         
     | 
| 
      
 71 
     | 
    
         
            +
              @if $relative-font-sizing and $from-size != $base-font-size {
         
     | 
| 
      
 72 
     | 
    
         
            +
                @warn "$relative-font-sizing is false but a relative font size was passed to adjust-font-size-to";
         
     | 
| 
      
 73 
     | 
    
         
            +
              }
         
     | 
| 
      
 74 
     | 
    
         
            +
              font-size: $font-unit * $to-size / $from-size;
         
     | 
| 
      
 75 
     | 
    
         
            +
              @include adjust-leading-to($lines, if($relative-font-sizing, $to-size, $base-font-size));
         
     | 
| 
       48 
76 
     | 
    
         
             
            }
         
     | 
| 
       49 
77 
     | 
    
         | 
| 
       50 
78 
     | 
    
         
             
            @mixin adjust-leading-to($lines, $font-size: $base-font-size) {
         
     | 
| 
       51 
     | 
    
         
            -
               
     | 
| 
      
 79 
     | 
    
         
            +
              @if $relative-font-sizing and $font-size != $base-font-size {
         
     | 
| 
      
 80 
     | 
    
         
            +
                @warn "$relative-font-sizing is false but a relative font size was passed to adjust-leading-to";
         
     | 
| 
      
 81 
     | 
    
         
            +
              }
         
     | 
| 
      
 82 
     | 
    
         
            +
              line-height: $font-unit * $lines * $base-line-height / $font-size;
         
     | 
| 
       52 
83 
     | 
    
         
             
            }
         
     | 
| 
       53 
84 
     | 
    
         | 
| 
       54 
85 
     | 
    
         
             
            // Calculate rhythm units
         
     | 
| 
         @@ -56,32 +87,55 @@ $base-half-leader: $base-leader / 2; 
     | 
|
| 
       56 
87 
     | 
    
         
             
              $lines: 1,
         
     | 
| 
       57 
88 
     | 
    
         
             
              $font-size: $base-font-size
         
     | 
| 
       58 
89 
     | 
    
         
             
            ) {
         
     | 
| 
       59 
     | 
    
         
            -
              $ 
     | 
| 
      
 90 
     | 
    
         
            +
              @if $relative-font-sizing and $font-size != $base-font-size {
         
     | 
| 
      
 91 
     | 
    
         
            +
                @warn "$relative-font-sizing is false but a relative font size was passed to the rhythm function";
         
     | 
| 
      
 92 
     | 
    
         
            +
              }
         
     | 
| 
      
 93 
     | 
    
         
            +
              $rhythm: $font-unit * $lines * $base-line-height / $font-size;
         
     | 
| 
       60 
94 
     | 
    
         
             
              @return $rhythm;
         
     | 
| 
       61 
95 
     | 
    
         
             
            }
         
     | 
| 
       62 
96 
     | 
    
         | 
| 
      
 97 
     | 
    
         
            +
            @function lines-for-font-size($font-size) {
         
     | 
| 
      
 98 
     | 
    
         
            +
              $lines: ceil($font-size / $base-line-height);
         
     | 
| 
      
 99 
     | 
    
         
            +
              @if $lines * $base-line-height - $font-size < $min-line-padding * 2 {
         
     | 
| 
      
 100 
     | 
    
         
            +
                $lines: $lines + 1;
         
     | 
| 
      
 101 
     | 
    
         
            +
              }
         
     | 
| 
      
 102 
     | 
    
         
            +
              @return $lines;
         
     | 
| 
      
 103 
     | 
    
         
            +
            }
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
       63 
105 
     | 
    
         
             
            // Apply leading whitespace
         
     | 
| 
       64 
106 
     | 
    
         
             
            @mixin leader($lines: 1, $font-size: $base-font-size, $property: margin) {
         
     | 
| 
       65 
     | 
    
         
            -
               
     | 
| 
      
 107 
     | 
    
         
            +
              $leader: rhythm($lines, $font-size);
         
     | 
| 
      
 108 
     | 
    
         
            +
              @if unit($leader) == px {
         
     | 
| 
      
 109 
     | 
    
         
            +
                $leader: floor($leader)
         
     | 
| 
      
 110 
     | 
    
         
            +
              }
         
     | 
| 
      
 111 
     | 
    
         
            +
              #{$property}-top: $leader;
         
     | 
| 
       66 
112 
     | 
    
         
             
            }
         
     | 
| 
       67 
113 
     | 
    
         | 
| 
      
 114 
     | 
    
         
            +
            // Apply leading whitespace as padding
         
     | 
| 
       68 
115 
     | 
    
         
             
            @mixin padding-leader($lines: 1, $font-size: $base-font-size) {
         
     | 
| 
       69 
116 
     | 
    
         
             
              @include leader($lines, $font-size, padding);
         
     | 
| 
       70 
117 
     | 
    
         
             
            }
         
     | 
| 
       71 
118 
     | 
    
         | 
| 
      
 119 
     | 
    
         
            +
            // Apply leading whitespace as margin
         
     | 
| 
       72 
120 
     | 
    
         
             
            @mixin margin-leader($lines: 1, $font-size: $base-font-size) {
         
     | 
| 
       73 
121 
     | 
    
         
             
              @include leader($lines, $font-size, margin);
         
     | 
| 
       74 
122 
     | 
    
         
             
            }
         
     | 
| 
       75 
123 
     | 
    
         | 
| 
       76 
124 
     | 
    
         
             
            // Apply trailing whitespace
         
     | 
| 
       77 
125 
     | 
    
         
             
            @mixin trailer($lines: 1, $font-size: $base-font-size, $property: margin) {
         
     | 
| 
       78 
     | 
    
         
            -
               
     | 
| 
      
 126 
     | 
    
         
            +
              $leader: rhythm($lines, $font-size);
         
     | 
| 
      
 127 
     | 
    
         
            +
              @if unit($leader) == px {
         
     | 
| 
      
 128 
     | 
    
         
            +
                $leader: ceil($leader)
         
     | 
| 
      
 129 
     | 
    
         
            +
              }
         
     | 
| 
      
 130 
     | 
    
         
            +
              #{$property}-bottom: $leader;
         
     | 
| 
       79 
131 
     | 
    
         
             
            }
         
     | 
| 
       80 
132 
     | 
    
         | 
| 
      
 133 
     | 
    
         
            +
            // Apply trailing whitespace as padding
         
     | 
| 
       81 
134 
     | 
    
         
             
            @mixin padding-trailer($lines: 1, $font-size: $base-font-size) {
         
     | 
| 
       82 
135 
     | 
    
         
             
              @include trailer($lines, $font-size, padding);
         
     | 
| 
       83 
136 
     | 
    
         
             
            }
         
     | 
| 
       84 
137 
     | 
    
         | 
| 
      
 138 
     | 
    
         
            +
            // Apply trailing whitespace as margin
         
     | 
| 
       85 
139 
     | 
    
         
             
            @mixin margin-trailer($lines: 1, $font-size: $base-font-size) {
         
     | 
| 
       86 
140 
     | 
    
         
             
              @include trailer($lines, $font-size, margin);
         
     | 
| 
       87 
141 
     | 
    
         
             
            }
         
     | 
| 
         @@ -97,19 +151,25 @@ $base-half-leader: $base-leader / 2; 
     | 
|
| 
       97 
151 
     | 
    
         | 
| 
       98 
152 
     | 
    
         
             
            // Apply a border width to any side without destroying the vertical rhythm
         
     | 
| 
       99 
153 
     | 
    
         
             
            @mixin apply-side-rhythm-border($side, $width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
         
     | 
| 
      
 154 
     | 
    
         
            +
              @if $relative-font-sizing and $font-size != $base-font-size {
         
     | 
| 
      
 155 
     | 
    
         
            +
                @warn "$relative-font-sizing is false but a relative font size was passed to apply-side-rhythm-border";
         
     | 
| 
      
 156 
     | 
    
         
            +
              }
         
     | 
| 
       100 
157 
     | 
    
         
             
              border-#{$side}: {
         
     | 
| 
       101 
158 
     | 
    
         
             
                style: $border-style;
         
     | 
| 
       102 
     | 
    
         
            -
                width:  
     | 
| 
      
 159 
     | 
    
         
            +
                width: $font-unit * $width / $font-size;
         
     | 
| 
       103 
160 
     | 
    
         
             
              };
         
     | 
| 
       104 
     | 
    
         
            -
              padding-#{$side}:  
     | 
| 
      
 161 
     | 
    
         
            +
              padding-#{$side}: $font-unit / $font-size * ($lines * $base-line-height - $width);
         
     | 
| 
       105 
162 
     | 
    
         
             
            }
         
     | 
| 
       106 
163 
     | 
    
         | 
| 
       107 
164 
     | 
    
         
             
            // Aplly rhythm borders equally to all sides
         
     | 
| 
       108 
165 
     | 
    
         
             
            @mixin rhythm-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
         
     | 
| 
      
 166 
     | 
    
         
            +
              @if $relative-font-sizing and $font-size != $base-font-size {
         
     | 
| 
      
 167 
     | 
    
         
            +
                @warn "$relative-font-sizing is false but a relative font size was passed to rhythm-borders";
         
     | 
| 
      
 168 
     | 
    
         
            +
              }
         
     | 
| 
       109 
169 
     | 
    
         
             
              border: {
         
     | 
| 
       110 
170 
     | 
    
         
             
                style: $border-style;
         
     | 
| 
       111 
     | 
    
         
            -
                width:  
     | 
| 
       112 
     | 
    
         
            -
              padding:  
     | 
| 
      
 171 
     | 
    
         
            +
                width: $font-unit * $width / $font-size; };
         
     | 
| 
      
 172 
     | 
    
         
            +
              padding: $font-unit / $font-size * ($lines * $base-line-height - $width);
         
     | 
| 
       113 
173 
     | 
    
         
             
            }
         
     | 
| 
       114 
174 
     | 
    
         | 
| 
       115 
175 
     | 
    
         
             
            // Apply a leading rhythm border
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            // Prevent long urls and text from breaking layouts
         
     | 
| 
      
 2 
     | 
    
         
            +
            // [originally from perishablepress.com](http://perishablepress.com/press/2010/06/01/wrapping-content/)
         
     | 
| 
      
 3 
     | 
    
         
            +
            @mixin force-wrap {
         
     | 
| 
      
 4 
     | 
    
         
            +
              white-space: pre;           // CSS 2.0
         
     | 
| 
      
 5 
     | 
    
         
            +
              white-space: pre-wrap;      // CSS 2.1
         
     | 
| 
      
 6 
     | 
    
         
            +
              white-space: pre-line;      // CSS 3.0
         
     | 
| 
      
 7 
     | 
    
         
            +
              white-space: -pre-wrap;     // Opera 4-6
         
     | 
| 
      
 8 
     | 
    
         
            +
              white-space: -o-pre-wrap;   // Opera 7
         
     | 
| 
      
 9 
     | 
    
         
            +
              white-space: -moz-pre-wrap; // Mozilla
         
     | 
| 
      
 10 
     | 
    
         
            +
              white-space: -hp-pre-wrap;  // HP Printers
         
     | 
| 
      
 11 
     | 
    
         
            +
              word-wrap: break-word;      // IE 5+
         
     | 
| 
      
 12 
     | 
    
         
            +
            }
         
     | 
    
        data/lib/compass.rb
    CHANGED
    
    
| 
         @@ -10,7 +10,7 @@ module Compass 
     | 
|
| 
       10 
10 
     | 
    
         
             
                  attr_accessor :working_path, :options
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                  def initialize(working_path, options)
         
     | 
| 
       13 
     | 
    
         
            -
                    self.working_path = working_path
         
     | 
| 
      
 13 
     | 
    
         
            +
                    self.working_path = working_path.to_s
         
     | 
| 
       14 
14 
     | 
    
         
             
                    self.options = options
         
     | 
| 
       15 
15 
     | 
    
         
             
                  end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
         @@ -22,6 +22,14 @@ module Compass 
     | 
|
| 
       22 
22 
     | 
    
         
             
                    raise StandardError.new("Not Implemented")
         
     | 
| 
       23 
23 
     | 
    
         
             
                  end
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
      
 25 
     | 
    
         
            +
                  def successful?
         
     | 
| 
      
 26 
     | 
    
         
            +
                    !@failed
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  def failed!
         
     | 
| 
      
 30 
     | 
    
         
            +
                    @failed = true
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       25 
33 
     | 
    
         
             
                  protected
         
     | 
| 
       26 
34 
     | 
    
         | 
| 
       27 
35 
     | 
    
         
             
                  def framework
         
     | 
| 
         @@ -84,8 +84,8 @@ module Compass 
     | 
|
| 
       84 
84 
     | 
    
         
             
                  end
         
     | 
| 
       85 
85 
     | 
    
         | 
| 
       86 
86 
     | 
    
         
             
                  def absolute_path?(path)
         
     | 
| 
       87 
     | 
    
         
            -
                    #  
     | 
| 
       88 
     | 
    
         
            -
                    path.index(File::SEPARATOR) == 0
         
     | 
| 
      
 87 
     | 
    
         
            +
                    # Pretty basic implementation
         
     | 
| 
      
 88 
     | 
    
         
            +
                    path.index(File::SEPARATOR) == 0 || path.index(':') == 1
         
     | 
| 
       89 
89 
     | 
    
         
             
                  end
         
     | 
| 
       90 
90 
     | 
    
         | 
| 
       91 
91 
     | 
    
         
             
                  def skip_extension_discovery?
         
     | 
    
        data/lib/compass/compiler.rb
    CHANGED
    
    | 
         @@ -6,7 +6,7 @@ module Compass 
     | 
|
| 
       6 
6 
     | 
    
         
             
                attr_accessor :working_path, :from, :to, :options, :sass_options, :staleness_checker, :importer
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
                def initialize(working_path, from, to, options)
         
     | 
| 
       9 
     | 
    
         
            -
                  self.working_path = working_path
         
     | 
| 
      
 9 
     | 
    
         
            +
                  self.working_path = working_path.to_s
         
     | 
| 
       10 
10 
     | 
    
         
             
                  self.from, self.to = from.gsub('./', ''), to
         
     | 
| 
       11 
11 
     | 
    
         
             
                  self.logger = options.delete(:logger)
         
     | 
| 
       12 
12 
     | 
    
         
             
                  sass_opts = options.delete(:sass) || {}
         
     | 
| 
         @@ -82,9 +82,10 @@ module Compass 
     | 
|
| 
       82 
82 
     | 
    
         
             
                end
         
     | 
| 
       83 
83 
     | 
    
         | 
| 
       84 
84 
     | 
    
         
             
                def run
         
     | 
| 
      
 85 
     | 
    
         
            +
                  failure_count = 0
         
     | 
| 
       85 
86 
     | 
    
         
             
                  if new_config?
         
     | 
| 
       86 
87 
     | 
    
         
             
                    # Wipe out the cache and force compilation if the configuration has changed.
         
     | 
| 
       87 
     | 
    
         
            -
                    remove options[:cache_location]
         
     | 
| 
      
 88 
     | 
    
         
            +
                    remove options[:cache_location] if options[:cache_location]
         
     | 
| 
       88 
89 
     | 
    
         
             
                    options[:force] = true
         
     | 
| 
       89 
90 
     | 
    
         
             
                  end
         
     | 
| 
       90 
91 
     | 
    
         | 
| 
         @@ -97,6 +98,7 @@ module Compass 
     | 
|
| 
       97 
98 
     | 
    
         
             
                      begin
         
     | 
| 
       98 
99 
     | 
    
         
             
                        compile_if_required sass_filename, css_filename
         
     | 
| 
       99 
100 
     | 
    
         
             
                      rescue Sass::SyntaxError => e
         
     | 
| 
      
 101 
     | 
    
         
            +
                        failure_count += 1
         
     | 
| 
       100 
102 
     | 
    
         
             
                        handle_exception(sass_filename, css_filename, e)
         
     | 
| 
       101 
103 
     | 
    
         
             
                      end
         
     | 
| 
       102 
104 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -104,6 +106,7 @@ module Compass 
     | 
|
| 
       104 
106 
     | 
    
         
             
                  if options[:time]
         
     | 
| 
       105 
107 
     | 
    
         
             
                    puts "Compilation took #{(result.__duration * 1000).round / 1000.0}s"
         
     | 
| 
       106 
108 
     | 
    
         
             
                  end
         
     | 
| 
      
 109 
     | 
    
         
            +
                  return failure_count
         
     | 
| 
       107 
110 
     | 
    
         
             
                end
         
     | 
| 
       108 
111 
     | 
    
         | 
| 
       109 
112 
     | 
    
         
             
                def compile_if_required(sass_filename, css_filename)
         
     |