compass 0.11.2 → 0.11.3
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 +22 -1
- data/features/step_definitions/command_line_steps.rb +21 -1
- data/frameworks/blueprint/stylesheets/blueprint/_fancy-type.scss +1 -0
- data/frameworks/compass/stylesheets/compass/css3/_box.scss +9 -9
- data/frameworks/compass/stylesheets/compass/css3/_font-face.scss +4 -14
- data/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss +14 -1
- data/lib/compass.rbc +87 -11
- data/lib/compass/actions.rb +21 -9
- data/lib/compass/actions.rbc +453 -210
- data/lib/compass/commands.rb +1 -1
- data/lib/compass/commands/clean_project.rb +79 -0
- data/lib/compass/commands/registry.rb +3 -1
- data/lib/compass/commands/sprite.rb +1 -1
- data/lib/compass/commands/update_project.rb +5 -6
- data/lib/compass/commands/watch_project.rb +1 -1
- data/lib/compass/compiler.rb +12 -9
- data/lib/compass/compiler.rbc +386 -294
- data/lib/compass/configuration/adapters.rb +2 -2
- data/lib/compass/configuration/adapters.rbc +4 -4
- data/lib/compass/configuration/data.rb +4 -2
- data/lib/compass/exec/sub_command_ui.rb +1 -1
- data/lib/compass/sass_extensions.rbc +117 -19
- data/lib/compass/sass_extensions/functions/gradient_support.rbc +489 -453
- data/lib/compass/sass_extensions/functions/sprites.rb +4 -4
- data/lib/compass/sass_extensions/functions/sprites.rbc +588 -309
- data/lib/compass/sass_extensions/functions/urls.rb +18 -3
- data/lib/compass/sass_extensions/sprites.rb +9 -7
- data/lib/compass/sass_extensions/sprites.rbc +48 -64
- data/lib/compass/sass_extensions/sprites/engines.rb +24 -0
- data/lib/compass/sass_extensions/sprites/engines/chunky_png_engine.rb +13 -7
- data/lib/compass/sass_extensions/sprites/image_methods.rb +32 -0
- data/lib/compass/sass_extensions/sprites/sprite_map.rb +54 -142
- data/lib/compass/sass_extensions/sprites/sprite_map.rbc +3839 -1536
- data/lib/compass/sass_extensions/sprites/{base.rb → sprite_methods.rb} +21 -101
- data/lib/compass/sprite_importer.rb +202 -0
- data/lib/compass/sprite_importer.rbc +3943 -0
- data/lib/compass/validator.rb +11 -4
- data/lib/compass/version.rbc +67 -109
- data/test/fixtures/sprites/public/images/bad_extensions/ten-by-ten.gif +0 -0
- data/test/fixtures/sprites/public/images/bad_extensions/twenty-by-twenty.jpg +0 -0
- data/test/fixtures/stylesheets/busted_image_urls/config.rb +29 -0
- data/test/fixtures/stylesheets/busted_image_urls/css/screen.css +9 -0
- data/test/fixtures/stylesheets/busted_image_urls/images/feed.png +0 -0
- data/test/fixtures/stylesheets/busted_image_urls/images/flags/dk.png +0 -0
- data/test/fixtures/stylesheets/busted_image_urls/images/grid.png +0 -0
- data/test/fixtures/stylesheets/busted_image_urls/sass/screen.sass +14 -0
- data/test/fixtures/stylesheets/busted_image_urls/tmp/screen.css +9 -0
- data/test/fixtures/stylesheets/compass/css/box.css +19 -0
- data/test/fixtures/stylesheets/compass/css/legacy_clearfix.css +9 -0
- data/test/fixtures/stylesheets/compass/css/sprites.css +1 -1
- data/test/fixtures/stylesheets/compass/css/utilities.css +7 -0
- data/test/fixtures/stylesheets/compass/images/{flag-03c3b29b35.png → flag-s03c3b29b35.png} +0 -0
- data/test/fixtures/stylesheets/compass/sass/legacy_clearfix.scss +3 -0
- data/test/fixtures/stylesheets/compass/sass/utilities.scss +4 -1
- data/test/fixtures/stylesheets/error/config.rb +10 -0
- data/test/fixtures/stylesheets/error/sass/screen.sass +2 -0
- data/test/integrations/compass_test.rb +22 -9
- data/test/integrations/sprites_test.rb +45 -45
- data/test/units/actions_test.rb +24 -0
- data/test/units/sprites/engine_test.rb +43 -0
- data/test/units/sprites/image_test.rb +2 -2
- data/test/units/sprites/importer_test.rb +66 -0
- data/test/units/sprites/sprite_command_test.rb +60 -0
- data/test/units/sprites/{base_test.rb → sprite_map_test.rb} +5 -5
- metadata +43 -34
- data/lib/compass/sass_extensions/sprites/sprites.rb +0 -62
data/VERSION.yml
CHANGED
@@ -145,6 +145,7 @@ Feature: Command Line
|
|
145
145
|
Scenario: Basic help
|
146
146
|
When I run: compass help
|
147
147
|
Then I should see the following "primary" commands:
|
148
|
+
| clean |
|
148
149
|
| compile |
|
149
150
|
| create |
|
150
151
|
| init |
|
@@ -179,6 +180,27 @@ Feature: Command Line
|
|
179
180
|
And I run: compass compile
|
180
181
|
And a css file tmp/layout.css is reported overwritten
|
181
182
|
|
183
|
+
Scenario: Cleaning a project
|
184
|
+
Given I am using the existing project in test/fixtures/stylesheets/compass
|
185
|
+
When I run: compass compile
|
186
|
+
And I run: compass clean
|
187
|
+
Then the following files are reported removed:
|
188
|
+
| .sass-cache/ |
|
189
|
+
| tmp/border_radius.css |
|
190
|
+
| tmp/box.css |
|
191
|
+
| tmp/box_shadow.css |
|
192
|
+
| tmp/columns.css |
|
193
|
+
| tmp/fonts.css |
|
194
|
+
| images/flag-s03c3b29b35.png |
|
195
|
+
And the following files are removed:
|
196
|
+
| .sass-cache/ |
|
197
|
+
| tmp/border_radius.css |
|
198
|
+
| tmp/box.css |
|
199
|
+
| tmp/box_shadow.css |
|
200
|
+
| tmp/columns.css |
|
201
|
+
| tmp/fonts.css |
|
202
|
+
| images/flag-s03c3b29b35.png |
|
203
|
+
|
182
204
|
Scenario: Watching a project for changes
|
183
205
|
Given ruby supports fork
|
184
206
|
Given I am using the existing project in test/fixtures/stylesheets/compass
|
@@ -218,7 +240,6 @@ Feature: Command Line
|
|
218
240
|
| sass_dir | sass |
|
219
241
|
| css_dir | assets/css |
|
220
242
|
|
221
|
-
@now
|
222
243
|
Scenario Outline: Print out a configuration value
|
223
244
|
Given I am using the existing project in test/fixtures/stylesheets/compass
|
224
245
|
When I run: compass config -p <property>
|
@@ -76,7 +76,7 @@ When /^I run in a separate process: compass ([^\s]+) ?(.+)?$/ do |command, args|
|
|
76
76
|
file.puts $stdout.string
|
77
77
|
end
|
78
78
|
open('/tmp/last_error.compass_test.txt', 'w') do |file|
|
79
|
-
file.puts
|
79
|
+
file.puts $stderr.string
|
80
80
|
end
|
81
81
|
exit!
|
82
82
|
end
|
@@ -116,10 +116,30 @@ Then /^a directory ([^ ]+) is (not )?created$/ do |directory, negated|
|
|
116
116
|
File.directory?(directory).should == !negated
|
117
117
|
end
|
118
118
|
|
119
|
+
Then /an? \w+ file ([^ ]+) is (not )?removed/ do |filename, negated|
|
120
|
+
File.exists?(filename).should == !!negated
|
121
|
+
end
|
122
|
+
|
119
123
|
Then /an? \w+ file ([^ ]+) is (not )?created/ do |filename, negated|
|
120
124
|
File.exists?(filename).should == !negated
|
121
125
|
end
|
122
126
|
|
127
|
+
Then "the following files are reported removed:" do |table|
|
128
|
+
table.rows.each do |css_file|
|
129
|
+
Then %Q{a css file #{css_file.first} is reported removed}
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
Then "the following files are removed:" do |table|
|
134
|
+
table.rows.each do |css_file|
|
135
|
+
Then %Q{a css file #{css_file.first} is removed}
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
Then /an? \w+ file ([^ ]+) is reported removed/ do |filename|
|
140
|
+
@last_result.should =~ /remove.*#{Regexp.escape(filename)}/
|
141
|
+
end
|
142
|
+
|
123
143
|
Then /an? \w+ file ([^ ]+) is reported created/ do |filename|
|
124
144
|
@last_result.should =~ /create.*#{Regexp.escape(filename)}/
|
125
145
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
// display:box; must be used for any of the other flexbox mixins to work properly
|
4
4
|
@mixin display-box {
|
5
5
|
@include experimental-value(display, box,
|
6
|
-
-moz, -webkit, not -o,
|
6
|
+
-moz, -webkit, not -o, -ms, not -khtml, official
|
7
7
|
);
|
8
8
|
}
|
9
9
|
|
@@ -16,7 +16,7 @@ $default-box-orient: horizontal !default;
|
|
16
16
|
) {
|
17
17
|
$orientation : unquote($orientation);
|
18
18
|
@include experimental(box-orient, $orientation,
|
19
|
-
-moz, -webkit, not -o,
|
19
|
+
-moz, -webkit, not -o, -ms, not -khtml, official
|
20
20
|
);
|
21
21
|
}
|
22
22
|
|
@@ -29,7 +29,7 @@ $default-box-align: stretch !default;
|
|
29
29
|
) {
|
30
30
|
$alignment : unquote($alignment);
|
31
31
|
@include experimental(box-align, $alignment,
|
32
|
-
-moz, -webkit, not -o,
|
32
|
+
-moz, -webkit, not -o, -ms, not -khtml, official
|
33
33
|
);
|
34
34
|
}
|
35
35
|
|
@@ -43,7 +43,7 @@ $default-box-flex: 0 !default;
|
|
43
43
|
$flex: $default-box-flex
|
44
44
|
) {
|
45
45
|
@include experimental(box-flex, $flex,
|
46
|
-
-moz, -webkit, not -o,
|
46
|
+
-moz, -webkit, not -o, -ms, not -khtml, official
|
47
47
|
);
|
48
48
|
}
|
49
49
|
|
@@ -55,7 +55,7 @@ $default-box-flex-group: 1 !default;
|
|
55
55
|
$group: $default-box-flex-group
|
56
56
|
) {
|
57
57
|
@include experimental(box-flex-group, $group,
|
58
|
-
-moz, -webkit, not -o,
|
58
|
+
-moz, -webkit, not -o, -ms, not -khtml, official
|
59
59
|
);
|
60
60
|
}
|
61
61
|
|
@@ -67,7 +67,7 @@ $default-box-ordinal-group: 1 !default;
|
|
67
67
|
$group: $default-ordinal-flex-group
|
68
68
|
) {
|
69
69
|
@include experimental(box-ordinal-group, $group,
|
70
|
-
-moz, -webkit, not -o,
|
70
|
+
-moz, -webkit, not -o, -ms, not -khtml, official
|
71
71
|
);
|
72
72
|
}
|
73
73
|
|
@@ -80,7 +80,7 @@ $default-box-direction: normal !default;
|
|
80
80
|
) {
|
81
81
|
$direction: unquote($direction);
|
82
82
|
@include experimental(box-direction, $direction,
|
83
|
-
-moz, -webkit, not -o,
|
83
|
+
-moz, -webkit, not -o, -ms, not -khtml, official
|
84
84
|
);
|
85
85
|
}
|
86
86
|
|
@@ -93,7 +93,7 @@ $default-box-lines: single !default;
|
|
93
93
|
) {
|
94
94
|
$lines: unquote($lines);
|
95
95
|
@include experimental(box-lines, $lines,
|
96
|
-
-moz, -webkit, not -o,
|
96
|
+
-moz, -webkit, not -o, -ms, not -khtml, official
|
97
97
|
);
|
98
98
|
}
|
99
99
|
|
@@ -106,6 +106,6 @@ $default-box-pack: start !default;
|
|
106
106
|
) {
|
107
107
|
$pack: unquote($pack);
|
108
108
|
@include experimental(box-pack, $pack,
|
109
|
-
-moz, -webkit, not -o,
|
109
|
+
-moz, -webkit, not -o, -ms, not -khtml, official
|
110
110
|
);
|
111
111
|
}
|
@@ -12,7 +12,10 @@
|
|
12
12
|
//
|
13
13
|
// If you need to generate other formats check out the Font Squirrel
|
14
14
|
// [font generator](http://www.fontsquirrel.com/fontface/generator)
|
15
|
-
|
15
|
+
//
|
16
|
+
// Example:
|
17
|
+
//
|
18
|
+
// +font-face("this name", font-files("this.woff", "woff", "this.otf", "opentype"), "this.eot")
|
16
19
|
@mixin font-face(
|
17
20
|
$name,
|
18
21
|
$font-files,
|
@@ -28,16 +31,3 @@
|
|
28
31
|
src: $font-files;
|
29
32
|
}
|
30
33
|
}
|
31
|
-
|
32
|
-
// EXAMPLE
|
33
|
-
// +font-face("this name", font-files("this.woff", "woff", "this.otf", "opentype"), "this.eot")
|
34
|
-
//
|
35
|
-
// will generate:
|
36
|
-
//
|
37
|
-
// @font-face {
|
38
|
-
// font-family: 'this name';
|
39
|
-
// src: url('fonts/this.eot');
|
40
|
-
// src: local("☺"),
|
41
|
-
// url('fonts/this.otf') format('woff'),
|
42
|
-
// url('fonts/this.woff') format('opentype');
|
43
|
-
// }
|
@@ -18,7 +18,7 @@
|
|
18
18
|
// [Easy Clearing](http://www.positioniseverything.net/easyclearing.html)
|
19
19
|
// has the advantage of allowing positioned elements to hang
|
20
20
|
// outside the bounds of the container at the expense of more tricky CSS.
|
21
|
-
@mixin pie-clearfix {
|
21
|
+
@mixin legacy-pie-clearfix {
|
22
22
|
&:after {
|
23
23
|
content : "\0020";
|
24
24
|
display : block;
|
@@ -29,3 +29,16 @@
|
|
29
29
|
}
|
30
30
|
@include has-layout;
|
31
31
|
}
|
32
|
+
|
33
|
+
// This is an updated version of the PIE clearfix method that reduces the amount of CSS output.
|
34
|
+
// If you need to support Firefox before 3.5 you need to use `legacy-pie-clearfix` instead.
|
35
|
+
//
|
36
|
+
// Adapted from: [A new micro clearfix hack](http://nicolasgallagher.com/micro-clearfix-hack/)
|
37
|
+
@mixin pie-clearfix {
|
38
|
+
&:after {
|
39
|
+
content: "";
|
40
|
+
display: table;
|
41
|
+
clear: both;
|
42
|
+
}
|
43
|
+
@include has-layout;
|
44
|
+
}
|
data/lib/compass.rbc
CHANGED
@@ -502,21 +502,63 @@ x
|
|
502
502
|
22
|
503
503
|
shared_extension_paths
|
504
504
|
i
|
505
|
-
|
506
|
-
|
505
|
+
54
|
506
|
+
39
|
507
507
|
0
|
508
|
+
13
|
509
|
+
10
|
510
|
+
53
|
511
|
+
15
|
512
|
+
45
|
508
513
|
1
|
509
|
-
7
|
510
514
|
2
|
515
|
+
7
|
516
|
+
3
|
511
517
|
64
|
512
518
|
49
|
519
|
+
4
|
520
|
+
1
|
521
|
+
13
|
522
|
+
9
|
523
|
+
34
|
524
|
+
15
|
525
|
+
45
|
526
|
+
5
|
527
|
+
6
|
528
|
+
45
|
529
|
+
1
|
530
|
+
7
|
531
|
+
7
|
513
532
|
3
|
533
|
+
64
|
534
|
+
49
|
535
|
+
4
|
536
|
+
1
|
537
|
+
49
|
538
|
+
8
|
539
|
+
1
|
540
|
+
9
|
541
|
+
49
|
542
|
+
45
|
543
|
+
5
|
544
|
+
9
|
545
|
+
7
|
546
|
+
10
|
547
|
+
64
|
548
|
+
49
|
549
|
+
11
|
514
550
|
1
|
515
551
|
35
|
516
552
|
1
|
553
|
+
8
|
554
|
+
51
|
555
|
+
35
|
556
|
+
0
|
557
|
+
38
|
558
|
+
0
|
517
559
|
11
|
518
560
|
I
|
519
|
-
|
561
|
+
3
|
520
562
|
I
|
521
563
|
0
|
522
564
|
I
|
@@ -525,11 +567,29 @@ I
|
|
525
567
|
0
|
526
568
|
n
|
527
569
|
p
|
570
|
+
12
|
571
|
+
x
|
572
|
+
23
|
573
|
+
@shared_extension_paths
|
574
|
+
x
|
575
|
+
3
|
576
|
+
ENV
|
577
|
+
n
|
578
|
+
s
|
528
579
|
4
|
580
|
+
HOME
|
581
|
+
x
|
582
|
+
2
|
583
|
+
[]
|
529
584
|
x
|
530
585
|
4
|
531
586
|
File
|
532
587
|
n
|
588
|
+
n
|
589
|
+
x
|
590
|
+
10
|
591
|
+
directory?
|
592
|
+
n
|
533
593
|
s
|
534
594
|
21
|
535
595
|
~/.compass/extensions
|
@@ -537,7 +597,7 @@ x
|
|
537
597
|
11
|
538
598
|
expand_path
|
539
599
|
p
|
540
|
-
|
600
|
+
13
|
541
601
|
I
|
542
602
|
-1
|
543
603
|
I
|
@@ -545,9 +605,25 @@ I
|
|
545
605
|
I
|
546
606
|
0
|
547
607
|
I
|
608
|
+
18
|
609
|
+
I
|
610
|
+
6
|
611
|
+
I
|
612
|
+
13
|
613
|
+
I
|
614
|
+
24
|
615
|
+
I
|
616
|
+
14
|
617
|
+
I
|
618
|
+
31
|
619
|
+
I
|
620
|
+
16
|
621
|
+
I
|
622
|
+
33
|
623
|
+
I
|
548
624
|
12
|
549
625
|
I
|
550
|
-
|
626
|
+
36
|
551
627
|
x
|
552
628
|
44
|
553
629
|
/Users/chris/Projects/compass/lib/compass.rb
|
@@ -580,11 +656,11 @@ I
|
|
580
656
|
I
|
581
657
|
2c
|
582
658
|
I
|
583
|
-
|
659
|
+
1a
|
584
660
|
I
|
585
661
|
38
|
586
662
|
I
|
587
|
-
|
663
|
+
1b
|
588
664
|
I
|
589
665
|
41
|
590
666
|
x
|
@@ -668,11 +744,11 @@ p
|
|
668
744
|
I
|
669
745
|
0
|
670
746
|
I
|
671
|
-
|
747
|
+
1e
|
672
748
|
I
|
673
749
|
4
|
674
750
|
I
|
675
|
-
|
751
|
+
1f
|
676
752
|
I
|
677
753
|
13
|
678
754
|
x
|
@@ -704,7 +780,7 @@ a
|
|
704
780
|
I
|
705
781
|
4a
|
706
782
|
I
|
707
|
-
|
783
|
+
1e
|
708
784
|
I
|
709
785
|
63
|
710
786
|
x
|
data/lib/compass/actions.rb
CHANGED
@@ -4,7 +4,7 @@ module Compass
|
|
4
4
|
attr_writer :logger
|
5
5
|
|
6
6
|
def logger
|
7
|
-
@logger ||= Logger.new
|
7
|
+
@logger ||= ::Compass::Logger.new
|
8
8
|
end
|
9
9
|
|
10
10
|
# copy/process a template in the compass template directory to the project directory.
|
@@ -17,13 +17,14 @@ module Compass
|
|
17
17
|
# create a directory and all the directories necessary to reach it.
|
18
18
|
def directory(dir, options = nil)
|
19
19
|
options ||= self.options if self.respond_to?(:options)
|
20
|
+
options ||= {}
|
20
21
|
if File.exists?(dir) && File.directory?(dir)
|
21
|
-
#
|
22
|
+
# do nothing
|
22
23
|
elsif File.exists?(dir)
|
23
24
|
msg = "#{basename(dir)} already exists and is not a directory."
|
24
25
|
raise Compass::FilesystemConflict.new(msg)
|
25
26
|
else
|
26
|
-
|
27
|
+
log_action :directory, separate("#{basename(dir)}/"), options
|
27
28
|
FileUtils.mkdir_p(dir) unless options[:dry_run]
|
28
29
|
end
|
29
30
|
end
|
@@ -33,20 +34,19 @@ module Compass
|
|
33
34
|
options ||= self.options if self.respond_to?(:options)
|
34
35
|
skip_write = options[:dry_run]
|
35
36
|
contents = process_erb(contents, options[:erb]) if options[:erb]
|
36
|
-
extra = options[:extra] || ""
|
37
37
|
if File.exists?(file_name)
|
38
38
|
existing_contents = IO.read(file_name)
|
39
39
|
if existing_contents == contents
|
40
|
-
|
40
|
+
log_action :identical, basename(file_name), options
|
41
41
|
skip_write = true
|
42
42
|
elsif options[:force]
|
43
|
-
|
43
|
+
log_action :overwrite, basename(file_name), options
|
44
44
|
else
|
45
45
|
msg = "File #{basename(file_name)} already exists. Run with --force to force overwrite."
|
46
46
|
raise Compass::FilesystemConflict.new(msg)
|
47
47
|
end
|
48
48
|
else
|
49
|
-
|
49
|
+
log_action :create, basename(file_name), options
|
50
50
|
end
|
51
51
|
if skip_write
|
52
52
|
FileUtils.touch file_name unless options[:dry_run]
|
@@ -65,9 +65,12 @@ module Compass
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def remove(file_name)
|
68
|
-
if File.
|
68
|
+
if File.directory?(file_name)
|
69
|
+
FileUtils.rm_rf file_name
|
70
|
+
log_action :remove, basename(file_name)+"/", options
|
71
|
+
elsif File.exists?(file_name)
|
69
72
|
File.unlink file_name
|
70
|
-
|
73
|
+
log_action :remove, basename(file_name), options
|
71
74
|
end
|
72
75
|
end
|
73
76
|
|
@@ -95,5 +98,14 @@ module Compass
|
|
95
98
|
(path[-1..-1] == File::SEPARATOR) ? path[0..-2] : path
|
96
99
|
end
|
97
100
|
|
101
|
+
def log_action(action, file, options)
|
102
|
+
quiet = !!options[:quiet]
|
103
|
+
quiet = false if options[:loud] && options[:loud] == true
|
104
|
+
quiet = false if options[:loud] && options[:loud].is_a?(Array) && options[:loud].include?(action)
|
105
|
+
unless quiet
|
106
|
+
logger.record(action, file, options[:extra].to_s)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
98
110
|
end
|
99
111
|
end
|