compass 0.13.alpha.4 → 0.13.alpha.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.markdown +2 -3
- data/Rakefile +91 -5
- data/VERSION.yml +1 -1
- data/examples/compass/images/emblem-a043c4f148.png +0 -0
- data/examples/compass/images/flag-03c3b29b35.png +0 -0
- data/examples/compass/images/flag-21cfbfbfc8.png +0 -0
- data/examples/css3/extensions/fancy-fonts/templates/project/Prociono.otf +0 -0
- data/features/command_line.feature +2 -6
- data/features/step_definitions/command_line_steps.rb +1 -0
- data/frameworks/compass/stylesheets/compass/_css3.scss +0 -1
- data/frameworks/compass/stylesheets/compass/_support.scss +353 -35
- data/frameworks/compass/stylesheets/compass/css3/_animation.scss +49 -48
- data/frameworks/compass/stylesheets/compass/css3/_appearance.scss +4 -8
- data/frameworks/compass/stylesheets/compass/css3/_background-clip.scss +15 -19
- data/frameworks/compass/stylesheets/compass/css3/_background-origin.scss +17 -19
- data/frameworks/compass/stylesheets/compass/css3/_background-size.scss +4 -8
- data/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +37 -39
- data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +45 -20
- data/frameworks/compass/stylesheets/compass/css3/_box-sizing.scss +6 -8
- data/frameworks/compass/stylesheets/compass/css3/_box.scss +12 -13
- data/frameworks/compass/stylesheets/compass/css3/_columns.scss +46 -26
- data/frameworks/compass/stylesheets/compass/css3/_deprecated-support.scss +272 -0
- data/frameworks/compass/stylesheets/compass/css3/_filter.scss +17 -10
- data/frameworks/compass/stylesheets/compass/css3/_flexbox.scss +134 -281
- data/frameworks/compass/stylesheets/compass/css3/_font-face.scss +5 -5
- data/frameworks/compass/stylesheets/compass/css3/_hyphenation.scss +14 -11
- data/frameworks/compass/stylesheets/compass/css3/_images.scss +77 -67
- data/frameworks/compass/stylesheets/compass/css3/_inline-block.scss +15 -6
- data/frameworks/compass/stylesheets/compass/css3/_opacity.scss +6 -2
- data/frameworks/compass/stylesheets/compass/css3/_pie.scss +1 -73
- data/frameworks/compass/stylesheets/compass/css3/_regions.scss +7 -6
- data/frameworks/compass/stylesheets/compass/css3/_selection.scss +45 -17
- data/frameworks/compass/stylesheets/compass/css3/_shared.scss +4 -261
- data/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +1 -1
- data/frameworks/compass/stylesheets/compass/css3/_transform.scss +24 -32
- data/frameworks/compass/stylesheets/compass/css3/_transition.scss +102 -152
- data/frameworks/compass/stylesheets/compass/css3/_user-interface.scss +42 -27
- data/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +2 -1
- data/frameworks/compass/stylesheets/compass/typography/links/_hover-link.scss +1 -1
- data/frameworks/compass/stylesheets/compass/typography/lists/_horizontal-list.scss +2 -2
- data/frameworks/compass/stylesheets/compass/typography/lists/_inline-list.scss +1 -1
- data/frameworks/compass/stylesheets/compass/typography/text/_ellipsis.scss +1 -1
- data/frameworks/compass/stylesheets/compass/utilities/_sass.scss +2 -0
- data/frameworks/compass/stylesheets/compass/utilities/color/_brightness.scss +12 -0
- data/frameworks/compass/stylesheets/compass/utilities/color/_contrast.scss +36 -12
- data/frameworks/compass/stylesheets/compass/utilities/general/_float.scss +6 -2
- data/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +23 -4
- data/frameworks/compass/stylesheets/compass/utilities/general/_min.scss +1 -1
- data/frameworks/compass/stylesheets/compass/utilities/sass/_lists.scss +16 -0
- data/frameworks/compass/stylesheets/compass/utilities/sass/_maps.scss +19 -0
- data/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss +25 -18
- data/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +3 -1
- data/frameworks/compass/stylesheets/compass/utilities/tables/_borders.scss +3 -3
- data/lib/compass.rb +1 -1
- data/lib/compass/browser_support.rb +1 -1
- data/lib/compass/caniuse.rb +247 -0
- data/lib/compass/configuration/adapters.rb +7 -1
- data/lib/compass/sass_extensions/functions.rb +5 -0
- data/lib/compass/sass_extensions/functions/constants.rb +2 -2
- data/lib/compass/sass_extensions/functions/cross_browser_support.rb +176 -1
- data/lib/compass/sass_extensions/functions/display.rb +24 -19
- data/lib/compass/sass_extensions/functions/env.rb +37 -8
- data/lib/compass/sass_extensions/functions/gradient_support.rb +10 -13
- data/lib/compass/sass_extensions/functions/math.rb +31 -13
- data/lib/compass/sass_extensions/functions/sprites.rb +48 -25
- data/lib/compass/sass_extensions/monkey_patches/browser_support.rb +42 -13
- data/lib/compass/sass_extensions/sprites/image.rb +14 -4
- data/lib/compass/sass_extensions/sprites/image_methods.rb +19 -3
- data/lib/compass/sprite_importer/content.erb +8 -7
- data/lib/compass/watcher/project_watcher.rb +75 -42
- data/lib/compass/watcher/watch.rb +35 -17
- data/test/fixtures/sprites/public/images/focus/ten-by-ten.png +0 -0
- data/test/fixtures/sprites/public/images/focus/ten-by-ten_active.png +0 -0
- data/test/fixtures/sprites/public/images/focus/ten-by-ten_focus.png +0 -0
- data/test/fixtures/sprites/public/images/focus/ten-by-ten_hover.png +0 -0
- data/test/fixtures/sprites/public/images/focus/ten-by-ten_target.png +0 -0
- data/test/fixtures/stylesheets/compass/config.rb +1 -0
- data/test/fixtures/stylesheets/compass/css/animation-with-legacy-ie.css +1 -9
- data/test/fixtures/stylesheets/compass/css/animation.css +1 -9
- data/test/fixtures/stylesheets/compass/css/appearance.css +3 -0
- data/test/fixtures/stylesheets/compass/css/background-clip.css +4 -8
- data/test/fixtures/stylesheets/compass/css/background-origin.css +4 -8
- data/test/fixtures/stylesheets/compass/css/background-size.css +3 -10
- data/test/fixtures/stylesheets/compass/css/border_radius.css +3 -3
- data/test/fixtures/stylesheets/compass/css/{box-sizeing.css → box-sizing.css} +2 -2
- data/test/fixtures/stylesheets/compass/css/box_shadow.css +15 -5
- data/test/fixtures/stylesheets/compass/css/brightness.css +14 -0
- data/test/fixtures/stylesheets/compass/css/browser-support.css +306 -0
- data/test/fixtures/stylesheets/compass/css/color.css +18 -0
- data/test/fixtures/stylesheets/compass/css/columns.css +27 -18
- data/test/fixtures/stylesheets/compass/css/filters.css +6 -6
- data/test/fixtures/stylesheets/compass/css/flexbox.css +84 -111
- data/test/fixtures/stylesheets/compass/css/fonts.css +1 -1
- data/test/fixtures/stylesheets/compass/css/gradients.css +53 -53
- data/test/fixtures/stylesheets/compass/css/grid_background.css +11 -11
- data/test/fixtures/stylesheets/compass/css/hyphenation.css +2 -4
- data/test/fixtures/stylesheets/compass/css/lists.css +6 -12
- data/test/fixtures/stylesheets/compass/css/regions.css +2 -2
- data/test/fixtures/stylesheets/compass/css/selection.css +41 -4
- data/test/fixtures/stylesheets/compass/css/sprites_with_explicit_separator.css +16 -0
- data/test/fixtures/stylesheets/compass/css/support.css +62 -0
- data/test/fixtures/stylesheets/compass/css/transform.css +64 -136
- data/test/fixtures/stylesheets/compass/css/transition.css +27 -45
- data/test/fixtures/stylesheets/compass/css/typography/links/hover-link.css +4 -0
- data/test/fixtures/stylesheets/compass/css/user-interface.css +34 -7
- data/test/fixtures/stylesheets/compass/css/utilities.css +7 -7
- data/test/fixtures/stylesheets/compass/css/vertical_rhythm.css +6 -9
- data/test/fixtures/stylesheets/compass/images/flag_states-sc42d7bf926.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo_active.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo_focus.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo_hover.png +0 -0
- data/test/fixtures/stylesheets/compass/images/flag_states/foo_target.png +0 -0
- data/test/fixtures/stylesheets/compass/sass/animation-with-legacy-ie.scss +1 -3
- data/test/fixtures/stylesheets/compass/sass/appearance.scss +5 -0
- data/test/fixtures/stylesheets/compass/sass/background-clip.scss +0 -5
- data/test/fixtures/stylesheets/compass/sass/background-origin.scss +0 -5
- data/test/fixtures/stylesheets/compass/sass/background-size.scss +0 -5
- data/test/fixtures/stylesheets/compass/sass/{box-sizeing.scss → box-sizing.scss} +1 -1
- data/test/fixtures/stylesheets/compass/sass/box_shadow.scss +2 -0
- data/test/fixtures/stylesheets/compass/sass/brightness.scss +12 -0
- data/test/fixtures/stylesheets/compass/sass/browser-support.scss +30 -0
- data/test/fixtures/stylesheets/compass/sass/color.scss +22 -0
- data/test/fixtures/stylesheets/compass/sass/filters.scss +1 -0
- data/test/fixtures/stylesheets/compass/sass/flexbox.scss +84 -40
- data/test/fixtures/stylesheets/compass/sass/gradients.sass +3 -2
- data/test/fixtures/stylesheets/compass/sass/selection.scss +29 -4
- data/test/fixtures/stylesheets/compass/sass/sprites_with_explicit_separator.scss +7 -0
- data/test/fixtures/stylesheets/compass/sass/support.scss +137 -0
- data/test/fixtures/stylesheets/compass/sass/transition.scss +0 -3
- data/test/fixtures/stylesheets/compass/sass/typography/links/hover-link.scss +3 -0
- data/test/fixtures/stylesheets/compass/sass/user-interface.scss +16 -5
- data/test/fixtures/stylesheets/compass/sass/utilities.scss +4 -4
- data/test/fixtures/stylesheets/envtest/css/env.css +4 -4
- data/test/fixtures/stylesheets/envtest/tmp/env.css +4 -4
- data/test/integrations/sprites_test.rb +30 -1
- data/test/test_helper.rb +2 -2
- data/test/units/caniuse_test.rb +115 -0
- data/test/units/command_line_test.rb +1 -0
- data/test/units/sass_extensions_test.rb +5 -0
- data/test/units/sprites/image_test.rb +12 -0
- data/test/units/sprites/sprite_map_test.rb +11 -0
- data/test/units/watcher/project_watcher_test.rb +26 -18
- metadata +96 -42
- data/examples/compass/src/pie.scss +0 -110
- data/frameworks/compass/stylesheets/compass/css3/_transform-legacy.scss +0 -87
- data/frameworks/compass/templates/pie/LICENSE +0 -12
- data/frameworks/compass/templates/pie/LICENSE-APACHE2.txt +0 -13
- data/frameworks/compass/templates/pie/LICENSE-GPL2.txt +0 -278
- data/frameworks/compass/templates/pie/PIE.htc +0 -96
- data/frameworks/compass/templates/pie/manifest.rb +0 -39
- data/frameworks/compass/templates/pie/pie.scss +0 -74
- data/lib/compass/sass_extensions/functions/utility.rb +0 -10
- data/test/fixtures/stylesheets/compass/css/pie.css +0 -23
- data/test/fixtures/stylesheets/compass/sass/pie.scss +0 -47
@@ -5,6 +5,7 @@ module Compass
|
|
5
5
|
ACTIVE = %r{[_-]active$}
|
6
6
|
TARGET = %r{[_-]target$}
|
7
7
|
HOVER = %r{[_-]hover$}
|
8
|
+
FOCUS = %r{[_-]focus$}
|
8
9
|
PARENT = %r{(.+)[-_](.+)$}
|
9
10
|
|
10
11
|
REPEAT_X = 'repeat-x'
|
@@ -114,7 +115,7 @@ module Compass
|
|
114
115
|
|
115
116
|
# Hover selector Image object if exsists
|
116
117
|
def hover
|
117
|
-
base.
|
118
|
+
base.get_magic_selector_image(name, 'hover')
|
118
119
|
end
|
119
120
|
|
120
121
|
# Is target selector
|
@@ -124,7 +125,7 @@ module Compass
|
|
124
125
|
|
125
126
|
# Target selector Image object if exsists
|
126
127
|
def target
|
127
|
-
base.
|
128
|
+
base.get_magic_selector_image(name, 'target')
|
128
129
|
end
|
129
130
|
|
130
131
|
# Is active selector
|
@@ -134,12 +135,21 @@ module Compass
|
|
134
135
|
|
135
136
|
# Active selector Image object if exsists
|
136
137
|
def active
|
137
|
-
base.
|
138
|
+
base.get_magic_selector_image(name, 'active')
|
139
|
+
end
|
140
|
+
|
141
|
+
# Is active selector
|
142
|
+
def focus?
|
143
|
+
name =~ FOCUS
|
138
144
|
end
|
139
145
|
|
146
|
+
# Active selector Image object if exsists
|
147
|
+
def focus
|
148
|
+
base.get_magic_selector_image(name, 'focus')
|
149
|
+
end
|
140
150
|
|
141
151
|
def parent
|
142
|
-
if [hover?, target?, active?].any?
|
152
|
+
if [hover?, target?, active?, focus?].any?
|
143
153
|
PARENT.match name
|
144
154
|
base.image_for($1)
|
145
155
|
end
|
@@ -13,19 +13,35 @@ module Compass
|
|
13
13
|
|
14
14
|
# Returns true if the image name has a hover selector image
|
15
15
|
def has_hover?(name)
|
16
|
-
!
|
16
|
+
!get_magic_selector_image(name, 'hover').nil?
|
17
17
|
end
|
18
18
|
|
19
19
|
# Returns true if the image name has a target selector image
|
20
20
|
def has_target?(name)
|
21
|
-
!
|
21
|
+
!get_magic_selector_image(name, 'target').nil?
|
22
|
+
end
|
23
|
+
|
24
|
+
# Returns true if the image name has a focus selector image
|
25
|
+
def has_focus?(name)
|
26
|
+
!get_magic_selector_image(name, 'focus').nil?
|
22
27
|
end
|
23
28
|
|
24
29
|
# Returns true if the image name has an active selector image
|
25
30
|
def has_active?(name)
|
26
|
-
!
|
31
|
+
!get_magic_selector_image(name, 'active').nil?
|
27
32
|
end
|
28
33
|
|
34
|
+
SEPERATORS = ['_', '-']
|
35
|
+
|
36
|
+
def get_magic_selector_image(name, selector)
|
37
|
+
SEPERATORS.each do |seperator|
|
38
|
+
file = image_for("#{name}#{seperator}#{selector}")
|
39
|
+
return file if !file.nil?
|
40
|
+
end
|
41
|
+
|
42
|
+
nil
|
43
|
+
end
|
44
|
+
|
29
45
|
# Return and array of image names that make up this sprite
|
30
46
|
def sprite_names
|
31
47
|
image_names.map { |f| File.basename(f, '.png') }
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
// General Sprite Defaults
|
4
4
|
// You can override them before you import this file.
|
5
|
-
$<%= name %>-sprite-base-class : ".<%= name %>-sprite" !default;
|
6
5
|
$<%= name %>-sprite-dimensions : false !default;
|
7
6
|
$<%= name %>-use-percentages : false !default;
|
8
7
|
$<%= name %>-position : 0% !default;
|
@@ -13,6 +12,8 @@ $<%= name %>-clean-up : true !default;
|
|
13
12
|
$<%= name %>-layout : vertical !default;
|
14
13
|
$<%= name %>-inline : false !default;
|
15
14
|
$<%= name %>-sort-by : 'none' !default;
|
15
|
+
$<%= name %>-class-separator : $default-sprite-separator !default;
|
16
|
+
$<%= name %>-sprite-base-class : ".<%= name %>#{$<%= name %>-class-separator}sprite" !default;
|
16
17
|
|
17
18
|
<% if skip_overrides %>
|
18
19
|
$<%= name %>-sprites: sprite-map("<%= uri %>", $layout: $<%= name %>-layout, $cleanup: $<%= name %>-clean-up, $spacing: $<%= name %>-spacing, $position : $<%= name %>-position);
|
@@ -71,16 +72,16 @@ $<%= name %>-sort-by : 'none' !default;
|
|
71
72
|
|
72
73
|
// Extends the sprite base class and set the background position for the desired sprite.
|
73
74
|
// It will also apply the image dimensions if $dimensions is true.
|
74
|
-
@mixin <%= name %>-sprite($name, $dimensions: $<%= name %>-sprite-dimensions, $offset-x: 0, $offset-y: 0, $use-percentages: $<%= name %>-use-percentages) {
|
75
|
+
@mixin <%= name %>-sprite($name, $dimensions: $<%= name %>-sprite-dimensions, $offset-x: 0, $offset-y: 0, $use-percentages: $<%= name %>-use-percentages, $separator: $<%= name %>-class-separator) {
|
75
76
|
@extend #{$<%= name %>-sprite-base-class};
|
76
|
-
@include sprite($<%= name %>-sprites, $name, $dimensions, $offset-x, $offset-y, $use-percentages);
|
77
|
+
@include sprite($<%= name %>-sprites, $name, $dimensions, $offset-x, $offset-y, $use-percentages, $separator: $separator);
|
77
78
|
}
|
78
79
|
|
79
|
-
@mixin <%= name %>-sprites($sprite-names, $dimensions: $<%= name %>-sprite-dimensions, $prefix: sprite-map-name($<%= name %>-sprites), $offset-x: 0, $offset-y: 0, $use-percentages: $<%= name %>-use-percentages) {
|
80
|
-
@include sprites($<%= name %>-sprites, $sprite-names, $<%= name %>-sprite-base-class, $dimensions, $prefix, $offset-x, $offset-y, $use-percentages)
|
80
|
+
@mixin <%= name %>-sprites($sprite-names, $dimensions: $<%= name %>-sprite-dimensions, $prefix: sprite-map-name($<%= name %>-sprites), $offset-x: 0, $offset-y: 0, $use-percentages: $<%= name %>-use-percentages, $separator: $<%= name %>-class-separator) {
|
81
|
+
@include sprites($<%= name %>-sprites, $sprite-names, $<%= name %>-sprite-base-class, $dimensions, $prefix, $offset-x, $offset-y, $use-percentages, $separator: $separator)
|
81
82
|
}
|
82
83
|
|
83
84
|
// Generates a class for each sprited image.
|
84
|
-
@mixin all-<%= name %>-sprites($dimensions: $<%= name %>-sprite-dimensions, $prefix: sprite-map-name($<%= name %>-sprites), $offset-x: 0, $offset-y: 0, $use-percentages: $<%= name %>-use-percentages) {
|
85
|
-
@include <%= name %>-sprites(<%= sprite_names.join(" ") %>, $dimensions, $prefix, $offset-x, $offset-y, $use-percentages);
|
85
|
+
@mixin all-<%= name %>-sprites($dimensions: $<%= name %>-sprite-dimensions, $prefix: sprite-map-name($<%= name %>-sprites), $offset-x: 0, $offset-y: 0, $use-percentages: $<%= name %>-use-percentages, $separator: $<%= name %>-class-separator) {
|
86
|
+
@include <%= name %>-sprites(<%= sprite_names.join(" ") %>, $dimensions, $prefix, $offset-x, $offset-y, $use-percentages, $separator: $separator);
|
86
87
|
}
|
@@ -8,7 +8,7 @@ module Compass
|
|
8
8
|
ALL_CHILDREN_SASS_FILTER = File.join('**', SASS_FILTER)
|
9
9
|
POLLING_MESSAGE = 'Compass is polling for changes'
|
10
10
|
|
11
|
-
attr_reader :options, :project_path, :watcher_compiler, :listener, :poll, :css_dir, :
|
11
|
+
attr_reader :options, :project_path, :watcher_compiler, :listener, :poll, :css_dir, :watchers
|
12
12
|
|
13
13
|
alias :working_path :project_path
|
14
14
|
|
@@ -22,83 +22,86 @@ module Compass
|
|
22
22
|
@options = options
|
23
23
|
@project_path = project_path
|
24
24
|
@css_dir = Compass.configuration.css_dir
|
25
|
-
@
|
25
|
+
@watchers = [SassWatch.new(&method(:sass_callback))] + watches
|
26
26
|
@watcher_compiler = Compass::Watcher::Compiler.new(project_path, options)
|
27
27
|
setup_listener
|
28
28
|
end
|
29
29
|
|
30
30
|
def watch!
|
31
|
-
listener.start
|
31
|
+
listener.start!
|
32
32
|
rescue Interrupt
|
33
|
-
|
33
|
+
logger.log "\nHappy Styling!"
|
34
34
|
listener.stop
|
35
35
|
end
|
36
36
|
|
37
37
|
private #============================================================================>
|
38
38
|
|
39
39
|
def setup_listener
|
40
|
-
@listener = Listen.
|
41
|
-
|
42
|
-
|
43
|
-
end
|
40
|
+
@listener = Listen::Listener.new(directories_to_watch,
|
41
|
+
:relative_paths => false)
|
42
|
+
@listener = listener.force_polling(true) if poll
|
44
43
|
@listener = listener.polling_fallback_message(POLLING_MESSAGE)
|
45
44
|
@listener = listener.ignore(/\.css$/)
|
46
45
|
@listener = listener.change(&method(:listen_callback))
|
47
46
|
end
|
48
47
|
|
49
|
-
def
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
48
|
+
def directories_to_watch
|
49
|
+
[Compass.configuration.sass_path] + Compass.configuration.sass_load_paths.map{|p| p.respond_to?(:root) ? p.root : nil}.compact
|
50
|
+
end
|
51
|
+
|
52
|
+
def listen_callback(modified_files, added_files, removed_files)
|
53
|
+
#log_action(:info, ">>> Listen Callback fired added: #{added_files}, mod: #{modified_files}, rem: #{removed_files}", {})
|
54
|
+
files = {:modified => modified_files,
|
55
|
+
:added => added_files,
|
56
|
+
:removed => removed_files}
|
57
|
+
|
58
|
+
run_once, run_each = watchers.partition {|w| w.run_once_per_changeset?}
|
59
|
+
|
60
|
+
run_once.each do |watcher|
|
61
|
+
if file = files.values.flatten.detect{|f| watcher.match?(f) }
|
62
|
+
action = files.keys.detect{|k| files[k].include?(file) }
|
63
|
+
watcher.run_callback(project_path, relative_to(file, project_path), action)
|
60
64
|
end
|
61
|
-
watches << Watcher::Watch.new(filter, &method(:sass_callback))
|
62
|
-
watches << Watcher::Watch.new(children, &method(:sass_callback))
|
63
65
|
end
|
64
|
-
watches.compact
|
65
|
-
end
|
66
66
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
files = modified_file + added_file + removed_file
|
75
|
-
# run watchers
|
76
|
-
sass_watchers.each do |watcher|
|
77
|
-
files.each do |file|
|
78
|
-
watcher.run_callback(project_path, file, action) if watcher.match?(file)
|
67
|
+
run_each.each do |watcher|
|
68
|
+
files.each do |action, list|
|
69
|
+
list.each do |file|
|
70
|
+
if watcher.match?(file)
|
71
|
+
watcher.run_callback(project_path, relative_to(file, project_path), action)
|
72
|
+
end
|
73
|
+
end
|
79
74
|
end
|
80
75
|
end
|
81
76
|
end
|
82
77
|
|
83
78
|
def sass_callback(base, file, action)
|
84
79
|
#log_action(:info, ">>> Sass Callback fired #{action}, #{file}", {})
|
85
|
-
|
86
|
-
|
87
|
-
|
80
|
+
full_filename = File.expand_path(File.join(base,file))
|
81
|
+
case action
|
82
|
+
when :modified
|
83
|
+
sass_modified(full_filename)
|
84
|
+
when :added
|
85
|
+
sass_added(full_filename)
|
86
|
+
when :removed
|
87
|
+
sass_removed(full_filename)
|
88
|
+
else
|
89
|
+
raise ArgumentError, "Illegal Action: #{action.inspect}"
|
90
|
+
end
|
88
91
|
end
|
89
92
|
|
90
93
|
def sass_modified(file)
|
91
|
-
log_action(:info, "#{file} was modified", options)
|
94
|
+
log_action(:info, "#{filename_for_display(file)} was modified", options)
|
92
95
|
compile
|
93
96
|
end
|
94
97
|
|
95
98
|
def sass_added(file)
|
96
|
-
log_action(:info, "#{file} was added", options)
|
99
|
+
log_action(:info, "#{filename_for_display(file)} was added", options)
|
97
100
|
compile
|
98
101
|
end
|
99
102
|
|
100
103
|
def sass_removed(file)
|
101
|
-
log_action(:info, "#{file} was removed", options)
|
104
|
+
log_action(:info, "#{filename_for_display(file)} was removed", options)
|
102
105
|
css_file = compiler.corresponding_css_file(File.join(project_path, file))
|
103
106
|
compile
|
104
107
|
if File.exists?(css_file)
|
@@ -106,6 +109,36 @@ module Compass
|
|
106
109
|
end
|
107
110
|
end
|
108
111
|
|
112
|
+
def local_development_locations
|
113
|
+
@local_development_locations ||= begin
|
114
|
+
r = [Compass.configuration.sass_path] + Array(Compass.configuration.additional_import_paths)
|
115
|
+
r.map!{|l| File.expand_path(l) }
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def filename_for_display(f)
|
120
|
+
if local_development_locations.detect{|d| in_directory?(d, f) }
|
121
|
+
relative_to_working_directory(f)
|
122
|
+
elsif framework = Frameworks::ALL.detect {|framework| in_directory?(framework.stylesheets_directory, f) }
|
123
|
+
"(#{framework.name}) #{relative_to(f, framework.stylesheets_directory)}"
|
124
|
+
else
|
125
|
+
f
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
def in_directory?(dir, f)
|
130
|
+
dir && (f[0...(dir.size)] == dir)
|
131
|
+
end
|
132
|
+
|
133
|
+
def relative_to_working_directory(f)
|
134
|
+
relative_to(f, Dir.pwd)
|
135
|
+
end
|
136
|
+
|
137
|
+
def relative_to(f, dir)
|
138
|
+
Pathname.new(f).relative_path_from(Pathname.new(dir))
|
139
|
+
rescue ArgumentError # does not share a common path.
|
140
|
+
f
|
141
|
+
end
|
109
142
|
end
|
110
143
|
end
|
111
|
-
end
|
144
|
+
end
|
@@ -1,33 +1,51 @@
|
|
1
1
|
module Compass
|
2
2
|
module Watcher
|
3
|
-
class
|
4
|
-
attr_reader :callback
|
3
|
+
class BasicWatch
|
4
|
+
attr_reader :callback
|
5
5
|
|
6
|
-
def initialize(
|
6
|
+
def initialize(&block)
|
7
|
+
unless block
|
8
|
+
raise NoCallbackError, "A Block must be supplied in order to be watched"
|
9
|
+
end
|
7
10
|
@callback = block
|
8
|
-
@glob = glob
|
9
|
-
verify!
|
10
|
-
end
|
11
|
-
|
12
|
-
def match?(changed_path)
|
13
|
-
File.fnmatch(glob, changed_path)
|
14
11
|
end
|
15
12
|
|
16
13
|
def run_callback(base, relative, action)
|
17
14
|
callback.call(base, relative, action)
|
18
15
|
end
|
19
16
|
|
20
|
-
|
17
|
+
def run_once_per_changeset?
|
18
|
+
false
|
19
|
+
end
|
21
20
|
|
22
|
-
def
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
def match?(path)
|
22
|
+
Sass::Util.abstract(self)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Watch < BasicWatch
|
27
|
+
attr_reader :glob
|
28
|
+
|
29
|
+
def initialize(glob, &block)
|
30
|
+
super(&block)
|
31
|
+
unless glob
|
32
|
+
raise WatcherException, "A glob must be supplied in order to be watched"
|
28
33
|
end
|
34
|
+
@glob = glob
|
29
35
|
end
|
30
36
|
|
37
|
+
def match?(changed_path)
|
38
|
+
File.fnmatch(glob, changed_path)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class SassWatch < BasicWatch
|
43
|
+
def match?(path)
|
44
|
+
path =~ /s[ac]ss$/
|
45
|
+
end
|
46
|
+
def run_once_per_changeset?
|
47
|
+
true
|
48
|
+
end
|
31
49
|
end
|
32
50
|
end
|
33
|
-
end
|
51
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -12,13 +12,6 @@
|
|
12
12
|
50% {
|
13
13
|
opacity: 0; } }
|
14
14
|
|
15
|
-
@-o-keyframes test {
|
16
|
-
0%, 100% {
|
17
|
-
opacity: 1; }
|
18
|
-
|
19
|
-
50% {
|
20
|
-
opacity: 0; } }
|
21
|
-
|
22
15
|
@keyframes test {
|
23
16
|
0%, 100% {
|
24
17
|
opacity: 1; }
|
@@ -27,7 +20,6 @@
|
|
27
20
|
opacity: 0; } }
|
28
21
|
|
29
22
|
.animation {
|
30
|
-
-webkit-animation: test;
|
31
23
|
-moz-animation: test;
|
32
|
-
-
|
24
|
+
-webkit-animation: test;
|
33
25
|
animation: test; }
|
@@ -12,13 +12,6 @@
|
|
12
12
|
50% {
|
13
13
|
background-color: blue; } }
|
14
14
|
|
15
|
-
@-o-keyframes test {
|
16
|
-
0%, 100% {
|
17
|
-
background-color: red; }
|
18
|
-
|
19
|
-
50% {
|
20
|
-
background-color: blue; } }
|
21
|
-
|
22
15
|
@keyframes test {
|
23
16
|
0%, 100% {
|
24
17
|
background-color: red; }
|
@@ -27,7 +20,6 @@
|
|
27
20
|
background-color: blue; } }
|
28
21
|
|
29
22
|
.animation {
|
30
|
-
-webkit-animation: test;
|
31
23
|
-moz-animation: test;
|
32
|
-
-
|
24
|
+
-webkit-animation: test;
|
33
25
|
animation: test; }
|
@@ -1,15 +1,11 @@
|
|
1
1
|
.background-clip {
|
2
|
-
-webkit-background-clip: border;
|
3
2
|
-moz-background-clip: border;
|
3
|
+
-o-background-clip: border-box;
|
4
|
+
-webkit-background-clip: border;
|
4
5
|
background-clip: border-box; }
|
5
6
|
|
6
7
|
.background-clip-multiple {
|
7
|
-
-webkit-background-clip: border, padding, content;
|
8
8
|
-moz-background-clip: border, padding, content;
|
9
|
+
-o-background-clip: border-box, padding-box, content-box;
|
10
|
+
-webkit-background-clip: border, padding, content;
|
9
11
|
background-clip: border-box, padding-box, content-box; }
|
10
|
-
|
11
|
-
.background-clip-khtml {
|
12
|
-
-webkit-background-clip: border;
|
13
|
-
-moz-background-clip: border;
|
14
|
-
-khtml-background-clip: border-box;
|
15
|
-
background-clip: border-box; }
|