compass 0.12.alpha.2 → 0.12.alpha.3
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +1 -1
- data/examples/compass/compass_app_log.txt +6 -0
- data/features/extensions.feature +1 -1
- data/features/step_definitions/command_line_steps.rb +7 -6
- data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +1 -1
- data/frameworks/compass/stylesheets/compass/css3/_images.scss +6 -6
- data/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +15 -3
- data/lib/compass/configuration/helpers.rb +19 -2
- data/lib/compass/sass_extensions/functions/image_size.rb +3 -3
- data/lib/compass/sass_extensions/functions/lists.rb +5 -0
- data/lib/compass/sass_extensions/sprites.rb +2 -0
- data/lib/compass/sass_extensions/sprites/engines/chunky_png_engine.rb +1 -13
- data/lib/compass/sass_extensions/sprites/image.rb +22 -2
- data/lib/compass/sass_extensions/sprites/layout_methods.rb +33 -1
- data/lib/compass/sass_extensions/sprites/sprite_map.rb +8 -1
- data/lib/compass/sass_extensions/sprites/sprite_methods.rb +2 -3
- data/test/fixtures/sprites/public/images/repeat_x/five.png +0 -0
- data/test/fixtures/sprites/public/images/repeat_x/four.png +0 -0
- data/test/fixtures/sprites/public/images/repeat_x/one.png +0 -0
- data/test/fixtures/sprites/public/images/repeat_x/three.png +0 -0
- data/test/fixtures/sprites/public/images/repeat_x/two.png +0 -0
- data/test/fixtures/stylesheets/compass/css/box_shadow.css +0 -3
- data/test/fixtures/stylesheets/compass/css/vertical_rhythm.css +3 -0
- data/test/fixtures/stylesheets/compass/sass/vertical_rhythm.scss +3 -1
- data/test/helpers/rails.rb +11 -2
- data/test/integrations/sprites_test.rb +3 -3
- data/test/test_helper.rb +10 -3
- data/test/units/actions_test.rb +1 -1
- data/test/units/sass_extensions_test.rb +4 -0
- data/test/units/sprites/engine_test.rb +6 -1
- data/test/units/sprites/image_row_test.rb +1 -0
- data/test/units/sprites/image_test.rb +18 -24
- data/test/units/sprites/layout_test.rb +155 -0
- data/test/units/sprites/sprite_command_test.rb +6 -2
- data/test/units/sprites/sprite_map_test.rb +18 -96
- metadata +21 -10
- data/test/tmp/compass_rails/public/images/selectors-s4c703bbc05.png +0 -0
data/VERSION.yml
CHANGED
@@ -0,0 +1,6 @@
|
|
1
|
+
2011-12-22 23:55:48 overwrite stylesheets/bp_layout.css
|
2
|
+
2011-12-22 23:55:48 identical stylesheets/compass.css
|
3
|
+
2011-12-22 23:55:49 overwrite stylesheets/pie.css
|
4
|
+
2011-12-22 23:59:05 identical stylesheets/bp_layout.css
|
5
|
+
2011-12-22 23:59:05 identical stylesheets/compass.css
|
6
|
+
2011-12-22 23:59:05 identical stylesheets/pie.css
|
data/features/extensions.feature
CHANGED
@@ -15,7 +15,7 @@ Feature: Extensions
|
|
15
15
|
@listframeworks
|
16
16
|
Scenario: Extensions directory for rails projects
|
17
17
|
Given ruby supports fork
|
18
|
-
And I'm in a newly created rails project:
|
18
|
+
And I'm in a newly created rails project: extension_test_rails_project
|
19
19
|
And I run: compass init rails
|
20
20
|
And the "vendor/plugins/compass_extensions" directory exists
|
21
21
|
And and I have a fake extension at vendor/plugins/compass_extensions/testing
|
@@ -42,10 +42,11 @@ Given %r{^I am in the parent directory$} do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
Given %r{^I'm in a newly created rails project: (.+)$} do |project_name|
|
45
|
-
|
45
|
+
dir = File.join(Dir.pwd, project_name)
|
46
|
+
@cleanup_directories << dir
|
46
47
|
begin
|
47
|
-
generate_rails_app project_name
|
48
|
-
Dir.chdir
|
48
|
+
generate_rails_app project_name, Dir.pwd
|
49
|
+
Dir.chdir dir
|
49
50
|
rescue LoadError
|
50
51
|
pending "Missing Ruby-on-rails gems: sudo gem install rails"
|
51
52
|
end
|
@@ -136,13 +137,13 @@ end
|
|
136
137
|
Then "the following files are reported removed:" do |table|
|
137
138
|
table.rows.each do |css_file|
|
138
139
|
#need to find a better way but this works for now
|
139
|
-
|
140
|
+
step %Q{a css file #{css_file.first} is reported removed}
|
140
141
|
end
|
141
142
|
end
|
142
143
|
|
143
144
|
Then "the following files are removed:" do |table|
|
144
145
|
table.rows.each do |css_file|
|
145
|
-
|
146
|
+
step %Q{a css file #{css_file.first} is removed}
|
146
147
|
end
|
147
148
|
end
|
148
149
|
|
@@ -258,7 +259,7 @@ end
|
|
258
259
|
Then /^I should see the following "([^"]+)" commands:$/ do |kind, table|
|
259
260
|
|
260
261
|
|
261
|
-
|
262
|
+
step %Q{I should be shown a list of "#{kind}" commands}
|
262
263
|
|
263
264
|
commands = @last_command_list.map{|c| c =~ /^\s+\* ([^ ]+)\s+- [A-Z].+$/; [$1]}
|
264
265
|
table.diff!(commands)
|
@@ -45,7 +45,7 @@ $default-box-shadow-inset : false !default;
|
|
45
45
|
}
|
46
46
|
$shadow : compact($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10);
|
47
47
|
@include experimental(box-shadow, $shadow,
|
48
|
-
-moz, -webkit, -o, not -ms, not -khtml, official
|
48
|
+
-moz, -webkit, not -o, not -ms, not -khtml, official
|
49
49
|
);
|
50
50
|
}
|
51
51
|
|
@@ -91,12 +91,12 @@
|
|
91
91
|
|
92
92
|
// Border image property support for vendor prefixing properties and values.
|
93
93
|
@mixin border-image($value) {
|
94
|
-
@if $experimental-support-for-mozilla { -moz-border-image: -moz(-compass-list($value)); }
|
95
|
-
@if $support-for-original-webkit-gradients { -webkit-border-image: -owg(-compass-list($value)); }
|
96
|
-
@if $experimental-support-for-webkit { -webkit-border-image: -webkit(-compass-list($value)); }
|
97
|
-
@if $experimental-support-for-opera { -o-border-image: -o(-compass-list($value)); }
|
98
|
-
@if $experimental-support-for-svg { border-image: -svg(-compass-list($value)); }
|
99
|
-
border-image:
|
94
|
+
@if $experimental-support-for-mozilla { -moz-border-image: -moz(reject(-compass-list($value), fill)); }
|
95
|
+
@if $support-for-original-webkit-gradients { -webkit-border-image: -owg(reject(-compass-list($value), fill)); }
|
96
|
+
@if $experimental-support-for-webkit { -webkit-border-image: -webkit(reject(-compass-list($value), fill)); }
|
97
|
+
@if $experimental-support-for-opera { -o-border-image: -o(reject(-compass-list($value), fill)); }
|
98
|
+
@if $experimental-support-for-svg { border-image: -svg(reject(-compass-list($value), fill)); }
|
99
|
+
border-image: $value;
|
100
100
|
}
|
101
101
|
|
102
102
|
// List style image property support for vendor prefixing within values.
|
@@ -15,9 +15,14 @@ $ie-font-ratio: 16px / 100%;
|
|
15
15
|
// Set to false if you want to use absolute pixes in sizing your typography.
|
16
16
|
$relative-font-sizing: true !default;
|
17
17
|
|
18
|
+
// Allows the `adjust-font-size-to` mixin and the `lines-for-font-size` function
|
19
|
+
// to round the line height to the nearest half line height instead of the
|
20
|
+
// nearest integral line height to avoid large spacing between lines.
|
21
|
+
$round-to-nearest-half-line: false !default;
|
22
|
+
|
18
23
|
// Ensure there is at least this many pixels
|
19
24
|
// of vertical padding above and below the text.
|
20
|
-
$min-line-padding: 2px;
|
25
|
+
$min-line-padding: 2px !default;
|
21
26
|
|
22
27
|
// $base-font-size but in your output unit of choice.
|
23
28
|
// Defaults to 1em when `$relative-font-sizing`
|
@@ -59,6 +64,11 @@ $base-half-leader: $base-leader / 2;
|
|
59
64
|
}
|
60
65
|
}
|
61
66
|
|
67
|
+
// resets the baseline to 1 leading unit
|
68
|
+
@mixin reset-baseline {
|
69
|
+
@include adjust-leading-to(1, if($relative-font-sizing, $base-font-size, $base-font-size));
|
70
|
+
}
|
71
|
+
|
62
72
|
// Show a background image that can be used to debug your alignments.
|
63
73
|
// include the $img argument if you would rather use your own image than the
|
64
74
|
// Compass default gradient image.
|
@@ -103,9 +113,11 @@ $base-half-leader: $base-leader / 2;
|
|
103
113
|
}
|
104
114
|
|
105
115
|
@function lines-for-font-size($font-size) {
|
106
|
-
$lines:
|
116
|
+
$lines: if($round-to-nearest-half-line,
|
117
|
+
ceil(2 * $font-size / $base-line-height) / 2,
|
118
|
+
ceil($font-size / $base-line-height));
|
107
119
|
@if $lines * $base-line-height - $font-size < $min-line-padding * 2 {
|
108
|
-
$lines: $lines + 1;
|
120
|
+
$lines: $lines + if($round-to-nearest-half-line, 0.5, 1);
|
109
121
|
}
|
110
122
|
@return $lines;
|
111
123
|
}
|
@@ -67,12 +67,19 @@ module Compass
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
unless @callbacks_loaded
|
70
|
-
|
71
|
-
|
70
|
+
on_saved = Proc.new do |sass_file, css_file|
|
71
|
+
Compass.configuration.run_stylesheet_saved(css_file)
|
72
|
+
end
|
73
|
+
if Sass::Plugin.respond_to?(:on_updated_stylesheet)
|
74
|
+
Sass::Plugin.on_updated_stylesheet(&on_saved)
|
75
|
+
else
|
76
|
+
Sass::Plugin.on_updating_stylesheet(&on_saved)
|
72
77
|
end
|
78
|
+
|
73
79
|
Sass::Plugin.on_compilation_error do |e, filename, css|
|
74
80
|
Compass.configuration.run_stylesheet_error(filename, e.message)
|
75
81
|
end
|
82
|
+
|
76
83
|
@callbacks_loaded = true
|
77
84
|
end
|
78
85
|
end
|
@@ -92,6 +99,16 @@ module Compass
|
|
92
99
|
def add_project_configuration(*args)
|
93
100
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
94
101
|
configuration_file_path = args.shift || detect_configuration_file
|
102
|
+
|
103
|
+
# TODO make this better i don't think it belongs here but it gets the job done
|
104
|
+
# This will allow compass to boot rails and load the config if its configured in the application.rb file via railtie
|
105
|
+
# if File.exists?(projectize('config/boot.rb')) && configuration_file_path.nil?
|
106
|
+
# require 'rails'
|
107
|
+
# require projectize('config/application.rb')
|
108
|
+
# options[:project_type] = :rails
|
109
|
+
# end
|
110
|
+
|
111
|
+
|
95
112
|
raise ArgumentError, "Too many arguments" if args.any?
|
96
113
|
if data = configuration_for(configuration_file_path, nil, configuration_for(options[:defaults]))
|
97
114
|
if data.raw_project_type
|
@@ -1,13 +1,13 @@
|
|
1
1
|
module Compass::SassExtensions::Functions::ImageSize
|
2
2
|
# Returns the width of the image relative to the images directory
|
3
3
|
def image_width(image_file)
|
4
|
-
width, _ =
|
4
|
+
width, _ = image_dimensions(image_file)
|
5
5
|
Sass::Script::Number.new(width,["px"])
|
6
6
|
end
|
7
7
|
|
8
8
|
# Returns the height of the image relative to the images directory
|
9
9
|
def image_height(image_file)
|
10
|
-
_, height =
|
10
|
+
_, height = image_dimensions(image_file)
|
11
11
|
Sass::Script::Number.new(height, ["px"])
|
12
12
|
end
|
13
13
|
|
@@ -44,7 +44,7 @@ module Compass::SassExtensions::Functions::ImageSize
|
|
44
44
|
|
45
45
|
private
|
46
46
|
|
47
|
-
def
|
47
|
+
def image_dimensions(image_file)
|
48
48
|
options[:compass] ||= {}
|
49
49
|
options[:compass][:image_dimensions] ||= {}
|
50
50
|
options[:compass][:image_dimensions][image_file.value] = ImageProperties.new(image_path_for_size(image_file.value)).size
|
@@ -74,6 +74,11 @@ module Compass::SassExtensions::Functions::Lists
|
|
74
74
|
Sass::Script::List.new list.values[start_index..end_index], list.separator
|
75
75
|
end
|
76
76
|
|
77
|
+
# removes the given values from the list.
|
78
|
+
def reject(list, *values)
|
79
|
+
Sass::Script::List.new(list.value.reject{|v| values.any?{|o| v == o}}, list.separator)
|
80
|
+
end
|
81
|
+
|
77
82
|
# returns the first value of a space delimited list.
|
78
83
|
def first_value_of(list)
|
79
84
|
if list.is_a?(Sass::Script::String)
|
@@ -2,11 +2,13 @@ require 'digest/md5'
|
|
2
2
|
require 'compass/sprite_importer'
|
3
3
|
|
4
4
|
module Compass
|
5
|
+
class SpriteException < Exception; end
|
5
6
|
module SassExtensions
|
6
7
|
module Sprites
|
7
8
|
end
|
8
9
|
end
|
9
10
|
end
|
11
|
+
|
10
12
|
require 'compass/sass_extensions/sprites/image_row'
|
11
13
|
require 'compass/sass_extensions/sprites/row_fitter'
|
12
14
|
require 'compass/sass_extensions/sprites/image'
|
@@ -13,19 +13,7 @@ module Compass
|
|
13
13
|
@canvas = ChunkyPNG::Image.new(width, height, ChunkyPNG::Color::TRANSPARENT)
|
14
14
|
images.each do |image|
|
15
15
|
input_png = ChunkyPNG::Image.from_file(image.file)
|
16
|
-
|
17
|
-
canvas.replace! input_png, image.left, image.top
|
18
|
-
else
|
19
|
-
x = image.left - (image.left / image.width).ceil * image.width
|
20
|
-
while x < width do
|
21
|
-
begin
|
22
|
-
canvas.replace! input_png, x, image.top
|
23
|
-
x += image.width
|
24
|
-
rescue ChunkyPNG::OutOfBounds
|
25
|
-
break;
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
16
|
+
canvas.replace! input_png, image.left, image.top
|
29
17
|
end
|
30
18
|
end
|
31
19
|
|
@@ -6,6 +6,11 @@ module Compass
|
|
6
6
|
TARGET = %r{[_-]target$}
|
7
7
|
HOVER = %r{[_-]hover$}
|
8
8
|
PARENT = %r{(.+)[-_](.+)$}
|
9
|
+
|
10
|
+
REPEAT_X = 'repeat-x'
|
11
|
+
NO_REPEAT = 'no-repeat'
|
12
|
+
|
13
|
+
VALID_REPEATS = [REPEAT_X, NO_REPEAT]
|
9
14
|
|
10
15
|
attr_reader :relative_file, :options, :base
|
11
16
|
attr_accessor :top, :left
|
@@ -53,8 +58,23 @@ module Compass
|
|
53
58
|
end
|
54
59
|
|
55
60
|
# Value of <tt> $#{name}-repeat </tt> or <tt> $repeat </tt>
|
56
|
-
def repeat
|
57
|
-
|
61
|
+
def repeat
|
62
|
+
@repeat ||= begin
|
63
|
+
rep = (get_var_file("repeat") || options.get_var("repeat") || Sass::Script::String.new(NO_REPEAT)).value
|
64
|
+
unless VALID_REPEATS.include? rep
|
65
|
+
raise SpriteException, "Invalid option for repeat \"#{rep}\" - valid options are #{VALID_REPEATS.join(', ')}"
|
66
|
+
end
|
67
|
+
|
68
|
+
rep
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def repeat_x?
|
73
|
+
repeat == REPEAT_X
|
74
|
+
end
|
75
|
+
|
76
|
+
def no_repeat?
|
77
|
+
repeat == NO_REPEAT
|
58
78
|
end
|
59
79
|
|
60
80
|
# Value of <tt> $#{name}-position </tt> or <tt> $position </tt> defaults to <tt>0px</tt>
|
@@ -5,6 +5,7 @@ module Compass
|
|
5
5
|
HORIZONTAL = 'horizontal'
|
6
6
|
DIAGONAL = 'diagonal'
|
7
7
|
SMART = 'smart'
|
8
|
+
VERTICAL = 'vertical'
|
8
9
|
|
9
10
|
def smart?
|
10
11
|
layout == SMART
|
@@ -17,6 +18,10 @@ module Compass
|
|
17
18
|
def diagonal?
|
18
19
|
layout == DIAGONAL
|
19
20
|
end
|
21
|
+
|
22
|
+
def vertical?
|
23
|
+
layout == VERTICAL
|
24
|
+
end
|
20
25
|
|
21
26
|
def layout
|
22
27
|
@layout ||= @kwargs.get_var('layout').value
|
@@ -43,11 +48,38 @@ module Compass
|
|
43
48
|
b.size <=> a.size
|
44
49
|
end
|
45
50
|
end
|
51
|
+
|
46
52
|
@width = width_for_vertical_layout
|
47
53
|
calulate_vertical_postions
|
48
54
|
@height = height_for_vertical_layout
|
55
|
+
if @images.any?(&:repeat_x?)
|
56
|
+
calculate_repeat_extra_width!
|
57
|
+
tile_images_that_repeat
|
58
|
+
end
|
49
59
|
end
|
50
60
|
end
|
61
|
+
|
62
|
+
def tile_images_that_repeat
|
63
|
+
@images.map {|img| img if img.repeat_x?}.compact.each do |image|
|
64
|
+
x = image.left - (image.left / image.width).ceil * image.width
|
65
|
+
while x < @width do
|
66
|
+
begin
|
67
|
+
img = image.dup
|
68
|
+
img.top = image.top
|
69
|
+
img.left = x.to_i
|
70
|
+
@images << img
|
71
|
+
x += image.width
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def calculate_repeat_extra_width!
|
78
|
+
require 'rational' #for ruby 1.8.7
|
79
|
+
m = @images.inject(1) {|m,img| img.repeat_x? ? m.lcm(img.width) : m}
|
80
|
+
remainder = @width % m
|
81
|
+
@width += (m - remainder) unless remainder.zero?
|
82
|
+
end
|
51
83
|
|
52
84
|
def calculate_smart_positions
|
53
85
|
fitter = ::Compass::SassExtensions::Sprites::RowFitter.new(@images)
|
@@ -97,7 +129,7 @@ module Compass
|
|
97
129
|
|
98
130
|
def calulate_vertical_postions
|
99
131
|
@images.each_with_index do |image, index|
|
100
|
-
image.left = image.position.unit_str == "%" ? (@width - image.width) * (image.position.value / 100.0) : image.position.value
|
132
|
+
image.left = (image.position.unit_str == "%" ? (@width - image.width) * (image.position.value / 100.0) : image.position.value).to_i
|
101
133
|
next if index == 0
|
102
134
|
last_image = @images[index-1]
|
103
135
|
image.top = last_image.top + last_image.height + [image.spacing, last_image.spacing].max
|
@@ -27,8 +27,7 @@ module Compass
|
|
27
27
|
# Creates the Sprite::Image objects for each image and calculates the width
|
28
28
|
def init_images
|
29
29
|
@images = image_names.collect do |relative_file|
|
30
|
-
|
31
|
-
image
|
30
|
+
Image.new(self, relative_file, kwargs)
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
@@ -69,7 +68,7 @@ module Compass
|
|
69
68
|
end
|
70
69
|
|
71
70
|
def cleanup_old_sprites
|
72
|
-
Dir[File.join(Compass.configuration.images_path, "#{path}
|
71
|
+
Dir[File.join(Compass.configuration.images_path, "#{path}-s*.png")].each do |file|
|
73
72
|
log :remove, file
|
74
73
|
FileUtils.rm file
|
75
74
|
Compass.configuration.run_sprite_removed(file)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,17 +1,14 @@
|
|
1
1
|
.box-shadow {
|
2
2
|
-webkit-box-shadow: 0px 0px 5px #333333, 2px 2px 5px #222222;
|
3
3
|
-moz-box-shadow: 0px 0px 5px #333333, 2px 2px 5px #222222;
|
4
|
-
-o-box-shadow: 0px 0px 5px #333333, 2px 2px 5px #222222;
|
5
4
|
box-shadow: 0px 0px 5px #333333, 2px 2px 5px #222222; }
|
6
5
|
|
7
6
|
.single-box-shadow {
|
8
7
|
-webkit-box-shadow: 0px 0px 5px #333333;
|
9
8
|
-moz-box-shadow: 0px 0px 5px #333333;
|
10
|
-
-o-box-shadow: 0px 0px 5px #333333;
|
11
9
|
box-shadow: 0px 0px 5px #333333; }
|
12
10
|
|
13
11
|
.multiple-box-shadows {
|
14
12
|
-webkit-box-shadow: 0px 0px 5px #333333, 2px 2px 5px #222222;
|
15
13
|
-moz-box-shadow: 0px 0px 5px #333333, 2px 2px 5px #222222;
|
16
|
-
-o-box-shadow: 0px 0px 5px #333333, 2px 2px 5px #222222;
|
17
14
|
box-shadow: 0px 0px 5px #333333, 2px 2px 5px #222222; }
|
@@ -11,4 +11,6 @@ $base-line-height: 16px;
|
|
11
11
|
.small-padded { @include adjust-font-size-to(12px,1); @include rhythm(1,1,1,1,12px); }
|
12
12
|
|
13
13
|
.borders { @include h-borders(1px,1); }
|
14
|
-
.large-borders { @include adjust-font-size-to(24px,3); @include h-borders(6px,1,24px); }
|
14
|
+
.large-borders { @include adjust-font-size-to(24px,3); @include h-borders(6px,1,24px); }
|
15
|
+
|
16
|
+
.reset { @include reset-baseline; }
|
data/test/helpers/rails.rb
CHANGED
@@ -10,7 +10,7 @@ module Compass
|
|
10
10
|
# Generate a rails application without polluting our current set of requires
|
11
11
|
# with the rails libraries. This will allow testing against multiple versions of rails
|
12
12
|
# by manipulating the load path.
|
13
|
-
def generate_rails_app(name)
|
13
|
+
def generate_rails_app(name, dir = nil)
|
14
14
|
if pid = fork
|
15
15
|
Process.wait(pid)
|
16
16
|
if $?.exitstatus == 2
|
@@ -22,7 +22,16 @@ module Compass
|
|
22
22
|
begin
|
23
23
|
require 'action_pack/version'
|
24
24
|
if ActionPack::VERSION::MAJOR >= 3
|
25
|
-
|
25
|
+
require 'rails/generators'
|
26
|
+
require 'rails/generators/rails/app/app_generator'
|
27
|
+
require 'mocha'
|
28
|
+
dir ||= File.join(File.expand_path('../../', __FILE__))
|
29
|
+
args = [File.join(dir, name), '-q', '-f', '--skip-bundle', '--skip-gemfile']
|
30
|
+
|
31
|
+
#stub this so you can generate more apps
|
32
|
+
Rails::Generators::AppGenerator.any_instance.stubs(:valid_const?).returns(true)
|
33
|
+
Rails::Generators::AppGenerator.start(args, {:destination_root => dir})
|
34
|
+
|
26
35
|
else
|
27
36
|
require 'rails/version'
|
28
37
|
require 'rails_generator'
|
@@ -374,13 +374,13 @@ class SpritesTest < Test::Unit::TestCase
|
|
374
374
|
|
375
375
|
it "should repeat the image" do
|
376
376
|
css = render <<-SCSS
|
377
|
-
$squares-repeat: repeat;
|
377
|
+
$squares-repeat: repeat-x;
|
378
378
|
@import "squares/*.png";
|
379
379
|
@include all-squares-sprites;
|
380
380
|
SCSS
|
381
381
|
assert_correct css, <<-CSS
|
382
382
|
.squares-sprite, .squares-ten-by-ten, .squares-twenty-by-twenty {
|
383
|
-
background: url('/squares-
|
383
|
+
background: url('/squares-s65c43cd573.png') no-repeat;
|
384
384
|
}
|
385
385
|
|
386
386
|
.squares-ten-by-ten {
|
@@ -628,7 +628,7 @@ class SpritesTest < Test::Unit::TestCase
|
|
628
628
|
SCSS
|
629
629
|
assert_correct css, <<-CSS
|
630
630
|
.ko-sprite, .ko-default_background, .ko-starbg26x27 {
|
631
|
-
background: url('/ko-
|
631
|
+
background: url('/ko-sd46dfbab4f.png') no-repeat;
|
632
632
|
}
|
633
633
|
|
634
634
|
.ko-default_background {
|
data/test/test_helper.rb
CHANGED
@@ -23,6 +23,12 @@ require 'compass'
|
|
23
23
|
require 'test/unit'
|
24
24
|
|
25
25
|
|
26
|
+
class String
|
27
|
+
def name
|
28
|
+
to_s
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
26
32
|
%w(command_line diff io rails test_case).each do |helper|
|
27
33
|
require "helpers/#{helper}"
|
28
34
|
end
|
@@ -49,7 +55,7 @@ module SpriteHelper
|
|
49
55
|
path, name = Compass::SpriteImporter.path_and_name(uri)
|
50
56
|
sprite_names = Compass::SpriteImporter.sprite_names(uri)
|
51
57
|
sass_engine = Compass::SpriteImporter.sass_engine(uri, name, importer, options)
|
52
|
-
map = Compass::SassExtensions::Sprites::SpriteMap.new(sprite_names.map{|n|
|
58
|
+
map = Compass::SassExtensions::Sprites::SpriteMap.new(sprite_names.map{|n| uri.gsub('*', n)}, path, name, sass_engine, options)
|
53
59
|
map.options = {:compass => {:logger => Compass::NullLogger.new}}
|
54
60
|
map
|
55
61
|
end
|
@@ -60,8 +66,9 @@ module SpriteHelper
|
|
60
66
|
end
|
61
67
|
|
62
68
|
def clean_up_sprites
|
63
|
-
|
64
|
-
::FileUtils.rm_r @images_tmp_path
|
69
|
+
init_sprite_helper
|
70
|
+
::FileUtils.rm_r @images_tmp_path
|
71
|
+
rescue Errno::ENOENT => e
|
65
72
|
end
|
66
73
|
|
67
74
|
end
|
data/test/units/actions_test.rb
CHANGED
@@ -152,6 +152,10 @@ class SassExtensionsTest < Test::Unit::TestCase
|
|
152
152
|
Compass::SassExtensions::Functions::ImageSize::ImageProperties.new(object)
|
153
153
|
end
|
154
154
|
|
155
|
+
def test_reject
|
156
|
+
assert_equal "b d", evaluate("reject(a b c d, a, c)")
|
157
|
+
assert_equal "a b c d", evaluate("reject(a b c d, e)")
|
158
|
+
end
|
155
159
|
|
156
160
|
protected
|
157
161
|
def evaluate(value)
|
@@ -1,14 +1,19 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class EngineTest < Test::Unit::TestCase
|
4
|
-
|
4
|
+
include SpriteHelper
|
5
5
|
def setup
|
6
|
+
create_sprite_temp
|
6
7
|
sprite_filename = 'squares/ten-by-ten.png'
|
7
8
|
@images = [
|
8
9
|
Compass::SassExtensions::Sprites::Image.new(nil, File.join(sprite_filename), {})
|
9
10
|
]
|
10
11
|
@engine = Compass::SassExtensions::Sprites::Engine.new(100, 100, @images)
|
11
12
|
end
|
13
|
+
|
14
|
+
def taredown
|
15
|
+
clean_up_sprites
|
16
|
+
end
|
12
17
|
|
13
18
|
|
14
19
|
test "should have width of 100" do
|
@@ -4,10 +4,15 @@ require 'ostruct'
|
|
4
4
|
|
5
5
|
class SpritesImageTest < Test::Unit::TestCase
|
6
6
|
include SpriteHelper
|
7
|
+
|
7
8
|
def setup
|
8
9
|
create_sprite_temp
|
9
10
|
end
|
10
11
|
|
12
|
+
def teardown
|
13
|
+
clean_up_sprites
|
14
|
+
end
|
15
|
+
|
11
16
|
SPRITE_FILENAME = 'selectors/ten-by-ten.png'
|
12
17
|
|
13
18
|
def sprite_path
|
@@ -51,13 +56,22 @@ class SpritesImageTest < Test::Unit::TestCase
|
|
51
56
|
assert_nil test_image.parent
|
52
57
|
end
|
53
58
|
|
54
|
-
test 'image type is "global"' do
|
55
|
-
|
56
|
-
|
59
|
+
test 'image type is "global" should raise exception' do
|
60
|
+
assert_raise ::Compass::SpriteException do
|
61
|
+
image = test_image "selectors_ten_by_ten_repeat" => Sass::Script::String.new('global')
|
62
|
+
image.repeat
|
63
|
+
end
|
57
64
|
end
|
58
65
|
|
59
66
|
test 'image type is "no-repeat"' do
|
60
|
-
|
67
|
+
img = test_image
|
68
|
+
assert_equal 'no-repeat', img.repeat
|
69
|
+
assert img.no_repeat?
|
70
|
+
end
|
71
|
+
|
72
|
+
test 'image repeat-x' do
|
73
|
+
img = test_image "selectors_ten_by_ten_repeat" => Sass::Script::String.new('repeat-x')
|
74
|
+
assert img.repeat_x?
|
61
75
|
end
|
62
76
|
|
63
77
|
test 'image position' do
|
@@ -82,24 +96,4 @@ class SpritesImageTest < Test::Unit::TestCase
|
|
82
96
|
assert_equal 0, img.offset
|
83
97
|
end
|
84
98
|
|
85
|
-
|
86
|
-
test 'gets name for sprite in search path' do
|
87
|
-
Compass.reset_configuration!
|
88
|
-
uri = 'foo/*.png'
|
89
|
-
other_folder = File.join(@images_tmp_path, '../other-temp')
|
90
|
-
FileUtils.mkdir_p other_folder
|
91
|
-
FileUtils.mkdir_p File.join(other_folder, 'foo')
|
92
|
-
%w(my bar).each do |file|
|
93
|
-
FileUtils.touch(File.join(other_folder, "foo/#{file}.png"))
|
94
|
-
end
|
95
|
-
config = Compass::Configuration::Data.new('config')
|
96
|
-
config.images_path = @images_tmp_path
|
97
|
-
config.sprite_load_path = [@images_tmp_path, other_folder]
|
98
|
-
Compass.add_configuration(config, "sprite_config")
|
99
|
-
image = Compass::SassExtensions::Sprites::Image.new(test_map, "foo/my.png", {})
|
100
|
-
assert_equal File.join(other_folder, 'foo/my.png'), image.file
|
101
|
-
assert_equal 0, image.size
|
102
|
-
FileUtils.rm_rf other_folder
|
103
|
-
end
|
104
|
-
|
105
99
|
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class LayoutTest < Test::Unit::TestCase
|
4
|
+
include SpriteHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
Hash.send(:include, Compass::SassExtensions::Functions::Sprites::VariableReader)
|
8
|
+
clean_up_sprites
|
9
|
+
create_sprite_temp
|
10
|
+
file = StringIO.new("images_path = #{@images_tmp_path.inspect}\n")
|
11
|
+
Compass.add_configuration(file, "sprite_config")
|
12
|
+
Compass.configure_sass_plugin!
|
13
|
+
@options = {'cleanup' => Sass::Script::Bool.new(true), 'layout' => Sass::Script::String.new('vertical')}
|
14
|
+
end
|
15
|
+
|
16
|
+
def teardown
|
17
|
+
clean_up_sprites
|
18
|
+
end
|
19
|
+
|
20
|
+
# HELPERS
|
21
|
+
|
22
|
+
def vertical
|
23
|
+
opts = @options.merge("layout" => Sass::Script::String.new('vertical'))
|
24
|
+
|
25
|
+
sprite_map_test(opts)
|
26
|
+
end
|
27
|
+
|
28
|
+
def smart
|
29
|
+
options = @options.merge("layout" => Sass::Script::String.new('smart'))
|
30
|
+
importer = Compass::SpriteImporter.new
|
31
|
+
uri = "image_row/*.png"
|
32
|
+
path, name = Compass::SpriteImporter.path_and_name(uri)
|
33
|
+
sprite_names = Compass::SpriteImporter.sprite_names(uri)
|
34
|
+
sass_engine = Compass::SpriteImporter.sass_engine(uri, name, importer, options)
|
35
|
+
map = Compass::SassExtensions::Sprites::SpriteMap.new(sprite_names.map {|n| "image_row/#{n}.png"}, path, name, sass_engine, options)
|
36
|
+
map.options = {:compass => {:logger => Compass::NullLogger.new}}
|
37
|
+
|
38
|
+
map
|
39
|
+
end
|
40
|
+
|
41
|
+
def diagonal
|
42
|
+
opts = @options.merge("layout" => Sass::Script::String.new('diagonal'))
|
43
|
+
|
44
|
+
sprite_map_test(opts)
|
45
|
+
end
|
46
|
+
|
47
|
+
def horizontal(options= {})
|
48
|
+
opts = @options.merge("layout" => Sass::Script::String.new('horizontal'))
|
49
|
+
opts.merge!(options)
|
50
|
+
|
51
|
+
sprite_map_test(opts)
|
52
|
+
end
|
53
|
+
|
54
|
+
# REPEAT_X
|
55
|
+
|
56
|
+
test 'repeat-x layout single image' do
|
57
|
+
opts = {"repeat_x_three_repeat" => Sass::Script::String.new('repeat-x')}
|
58
|
+
map = sprite_map_test(@options.merge(opts), 'repeat_x/*.png')
|
59
|
+
assert_equal 6, map.width
|
60
|
+
assert_equal [0, 4, 7, 9, 14, 4, 4], map.images.map(&:top)
|
61
|
+
assert_equal [0, 0, 0, 0, 0, 0, 3], map.images.map(&:left)
|
62
|
+
end
|
63
|
+
|
64
|
+
test 'repeat-x layout multi image' do
|
65
|
+
opts = {"repeat_x_three_repeat" => Sass::Script::String.new('repeat-x'), "repeat_x_four_repeat" => Sass::Script::String.new('repeat-x')}
|
66
|
+
map = sprite_map_test(@options.merge(opts), 'repeat_x/*.png')
|
67
|
+
assert_equal 12, map.width
|
68
|
+
end
|
69
|
+
|
70
|
+
# VERTICAL LAYOUT
|
71
|
+
|
72
|
+
it "should have a vertical layout" do
|
73
|
+
vert = vertical
|
74
|
+
assert_equal [0, 10, 20, 30], vert.images.map(&:top)
|
75
|
+
assert_equal [0, 0, 0, 0], vert.images.map(&:left)
|
76
|
+
assert vert.vertical?
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should have a vertical layout with spacing" do
|
80
|
+
vert = sprite_map_test(@options.merge({"spacing" => Sass::Script::Number.new(10, ['px'])}))
|
81
|
+
assert_equal [0, 20, 40, 60], vert.images.map(&:top)
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should layout vertical with position" do
|
85
|
+
vert = sprite_map_test("selectors_ten_by_ten_active_position" => Sass::Script::Number.new(10, ['px']))
|
86
|
+
assert_equal [0, 10, 0, 0], vert.images.map(&:left)
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should generate vertical sprites in decending order" do
|
90
|
+
sizes = vertical.images.map{|image| File.size(image.file) }
|
91
|
+
assert_equal sizes.min, File.size(vertical.images.first.file)
|
92
|
+
assert_equal sizes.max, File.size(vertical.images.last.file)
|
93
|
+
end
|
94
|
+
|
95
|
+
# SMART LAYOUT
|
96
|
+
|
97
|
+
it "should have a smart layout" do
|
98
|
+
base = smart
|
99
|
+
base.generate
|
100
|
+
assert base.smart?
|
101
|
+
assert_equal 400, base.width
|
102
|
+
assert_equal 60, base.height
|
103
|
+
assert_equal [[0, 0], [20, 120], [20, 0], [20, 100], [20, 160]], base.images.map {|i| [i.top, i.left]}
|
104
|
+
assert File.exists?(base.filename)
|
105
|
+
FileUtils.rm base.filename
|
106
|
+
end
|
107
|
+
|
108
|
+
# DIAGONAL LAYOUT
|
109
|
+
|
110
|
+
it "should generate a diagonal sprite" do
|
111
|
+
base = diagonal
|
112
|
+
base.generate
|
113
|
+
assert base.diagonal?
|
114
|
+
assert_equal 40, base.width
|
115
|
+
assert_equal 40, base.height
|
116
|
+
assert_equal [[30, 0], [20, 10], [10, 20], [0, 30]], base.images.map {|i| [i.top, i.left]}
|
117
|
+
assert File.exists?(base.filename)
|
118
|
+
FileUtils.rm base.filename
|
119
|
+
end
|
120
|
+
|
121
|
+
# HORIZONTAL LAYOUT
|
122
|
+
|
123
|
+
it "should have a horizontal layout" do
|
124
|
+
base = horizontal
|
125
|
+
assert base.horizontal?
|
126
|
+
assert_equal 10, base.height
|
127
|
+
assert_equal 40, base.width
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should layout images horizontaly" do
|
131
|
+
base = horizontal
|
132
|
+
assert_equal [0, 10, 20, 30], base.images.map(&:left)
|
133
|
+
assert_equal [0, 0, 0, 0], base.images.map(&:top)
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should layout horizontaly with spacing" do
|
137
|
+
base = horizontal("spacing" => Sass::Script::Number.new(10, ['px']))
|
138
|
+
assert_equal [0, 20, 40, 60], base.images.map(&:left)
|
139
|
+
assert_equal [0, 0, 0, 0], base.images.map(&:top)
|
140
|
+
assert_equal 80, base.width
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should layout horizontaly with position" do
|
144
|
+
base = horizontal("selectors_ten_by_ten_active_position" => Sass::Script::Number.new(10, ['px']))
|
145
|
+
assert_equal [0, 10, 0, 0], base.images.map(&:top)
|
146
|
+
end
|
147
|
+
|
148
|
+
it "should generate a horrizontal sprite" do
|
149
|
+
base = horizontal
|
150
|
+
base.generate
|
151
|
+
assert File.exists?(base.filename)
|
152
|
+
FileUtils.rm base.filename
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
|
2
|
+
require 'compass/exec'
|
3
3
|
class SpriteCommandTest < Test::Unit::TestCase
|
4
|
+
include Compass::TestCaseHelper
|
5
|
+
include Compass::CommandLineHelper
|
6
|
+
include Compass::IoHelper
|
7
|
+
|
4
8
|
attr_reader :test_dir
|
5
9
|
include SpriteHelper
|
6
10
|
def setup
|
@@ -27,7 +31,7 @@ class SpriteCommandTest < Test::Unit::TestCase
|
|
27
31
|
def run_compass_with_options(options)
|
28
32
|
output = 'foo'
|
29
33
|
::Dir.chdir @test_dir
|
30
|
-
|
34
|
+
compass *options
|
31
35
|
end
|
32
36
|
|
33
37
|
def options_to_cli(options)
|
@@ -80,102 +80,6 @@ class SpriteMapTest < Test::Unit::TestCase
|
|
80
80
|
@base.generate
|
81
81
|
assert !File.exists?(file), "Sprite file did not get removed"
|
82
82
|
end
|
83
|
-
|
84
|
-
it "should have a vertical layout" do
|
85
|
-
assert_equal [0, 10, 20, 30], @base.images.map(&:top)
|
86
|
-
assert_equal [0, 0, 0, 0], @base.images.map(&:left)
|
87
|
-
end
|
88
|
-
|
89
|
-
it "should have a vertical layout with spacing" do
|
90
|
-
base = sprite_map_test(@options.merge({"spacing" => Sass::Script::Number.new(10, ['px'])}))
|
91
|
-
assert_equal [0, 20, 40, 60], base.images.map(&:top)
|
92
|
-
end
|
93
|
-
|
94
|
-
it "should layout vertical with position" do
|
95
|
-
base = sprite_map_test("selectors_ten_by_ten_active_position" => Sass::Script::Number.new(10, ['px']))
|
96
|
-
assert_equal [0, 10, 0, 0], base.images.map(&:left)
|
97
|
-
end
|
98
|
-
|
99
|
-
def smart
|
100
|
-
options = @options.merge("layout" => Sass::Script::String.new('smart'))
|
101
|
-
importer = Compass::SpriteImporter.new
|
102
|
-
uri = "image_row/*.png"
|
103
|
-
path, name = Compass::SpriteImporter.path_and_name(uri)
|
104
|
-
sprite_names = Compass::SpriteImporter.sprite_names(uri)
|
105
|
-
sass_engine = Compass::SpriteImporter.sass_engine(uri, name, importer, options)
|
106
|
-
map = Compass::SassExtensions::Sprites::SpriteMap.new(sprite_names.map {|n| "image_row/#{n}.png"}, path, name, sass_engine, options)
|
107
|
-
map.options = {:compass => {:logger => Compass::NullLogger.new}}
|
108
|
-
map
|
109
|
-
end
|
110
|
-
|
111
|
-
it "should have a smart layout" do
|
112
|
-
base = smart
|
113
|
-
base.generate
|
114
|
-
assert_equal 400, base.width
|
115
|
-
assert_equal 60, base.height
|
116
|
-
assert_equal [[0, 0], [20, 120], [20, 0], [20, 100], [20, 160]], base.images.map {|i| [i.top, i.left]}
|
117
|
-
assert File.exists?(base.filename)
|
118
|
-
FileUtils.rm base.filename
|
119
|
-
end
|
120
|
-
|
121
|
-
def diagonal
|
122
|
-
opts = @options.merge("layout" => Sass::Script::String.new('diagonal'))
|
123
|
-
sprite_map_test(opts)
|
124
|
-
end
|
125
|
-
|
126
|
-
it "should generate a diagonal sprite" do
|
127
|
-
base = diagonal
|
128
|
-
base.generate
|
129
|
-
assert_equal 40, base.width
|
130
|
-
assert_equal 40, base.height
|
131
|
-
assert_equal [[30, 0], [20, 10], [10, 20], [0, 30]], base.images.map {|i| [i.top, i.left]}
|
132
|
-
assert File.exists?(base.filename)
|
133
|
-
FileUtils.rm base.filename
|
134
|
-
end
|
135
|
-
|
136
|
-
# Horizontal tests
|
137
|
-
def horizontal(options= {})
|
138
|
-
opts = @options.merge("layout" => Sass::Script::String.new('horizontal'))
|
139
|
-
opts.merge!(options)
|
140
|
-
sprite_map_test(opts)
|
141
|
-
end
|
142
|
-
|
143
|
-
it "should have a horizontal layout" do
|
144
|
-
base = horizontal
|
145
|
-
assert_equal 10, base.height
|
146
|
-
assert_equal 40, base.width
|
147
|
-
end
|
148
|
-
|
149
|
-
it "should layout images horizontaly" do
|
150
|
-
base = horizontal
|
151
|
-
assert_equal [0, 10, 20, 30], base.images.map(&:left)
|
152
|
-
assert_equal [0, 0, 0, 0], base.images.map(&:top)
|
153
|
-
end
|
154
|
-
|
155
|
-
it "should layout horizontaly with spacing" do
|
156
|
-
base = horizontal("spacing" => Sass::Script::Number.new(10, ['px']))
|
157
|
-
assert_equal [0, 20, 40, 60], base.images.map(&:left)
|
158
|
-
assert_equal [0, 0, 0, 0], base.images.map(&:top)
|
159
|
-
assert_equal 80, base.width
|
160
|
-
end
|
161
|
-
|
162
|
-
it "should layout horizontaly with position" do
|
163
|
-
base = horizontal("selectors_ten_by_ten_active_position" => Sass::Script::Number.new(10, ['px']))
|
164
|
-
assert_equal [0, 10, 0, 0], base.images.map(&:top)
|
165
|
-
end
|
166
|
-
|
167
|
-
it "should generate a horrizontal sprite" do
|
168
|
-
base = horizontal
|
169
|
-
base.generate
|
170
|
-
assert File.exists?(base.filename)
|
171
|
-
FileUtils.rm base.filename
|
172
|
-
end
|
173
|
-
|
174
|
-
it "should generate vertical sprites in decending order" do
|
175
|
-
sizes = @base.images.map{|image| File.size(image.file) }
|
176
|
-
assert_equal sizes.min, File.size(@base.images.first.file)
|
177
|
-
assert_equal sizes.max, File.size(@base.images.last.file)
|
178
|
-
end
|
179
83
|
|
180
84
|
test "should get correct relative_name" do
|
181
85
|
Compass.reset_configuration!
|
@@ -205,5 +109,23 @@ class SpriteMapTest < Test::Unit::TestCase
|
|
205
109
|
base = sprite_map_test(@options.merge('selectors_ten_by_ten_position' => percent))
|
206
110
|
assert_equal percent, base.image_for('ten-by-ten').position
|
207
111
|
end
|
112
|
+
|
113
|
+
test 'gets name for sprite in search path' do
|
114
|
+
Compass.reset_configuration!
|
115
|
+
uri = 'foo/*.png'
|
116
|
+
other_folder = File.join(@images_tmp_path, '../other-temp')
|
117
|
+
FileUtils.mkdir_p other_folder
|
118
|
+
FileUtils.mkdir_p File.join(other_folder, 'foo')
|
119
|
+
%w(my bar).each do |file|
|
120
|
+
FileUtils.touch(File.join(other_folder, "foo/#{file}.png"))
|
121
|
+
end
|
122
|
+
config = Compass::Configuration::Data.new('config')
|
123
|
+
config.images_path = @images_tmp_path
|
124
|
+
config.sprite_load_path = [@images_tmp_path, other_folder]
|
125
|
+
Compass.add_configuration(config, "sprite_config")
|
126
|
+
image = Compass::SassExtensions::Sprites::Image.new(@base, "foo/my.png", {})
|
127
|
+
assert_equal File.join(other_folder, 'foo/my.png'), image.file
|
128
|
+
assert_equal 0, image.size
|
129
|
+
end
|
208
130
|
|
209
131
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: compass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.12.alpha.
|
4
|
+
version: 0.12.alpha.3
|
5
5
|
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,11 +13,11 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2011-
|
16
|
+
date: 2011-12-24 00:00:00.000000000Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: sass
|
20
|
-
requirement: &
|
20
|
+
requirement: &70118335109760 !ruby/object:Gem::Requirement
|
21
21
|
none: false
|
22
22
|
requirements:
|
23
23
|
- - ~>
|
@@ -25,10 +25,10 @@ dependencies:
|
|
25
25
|
version: '3.1'
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
|
-
version_requirements: *
|
28
|
+
version_requirements: *70118335109760
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: chunky_png
|
31
|
-
requirement: &
|
31
|
+
requirement: &70118335109100 !ruby/object:Gem::Requirement
|
32
32
|
none: false
|
33
33
|
requirements:
|
34
34
|
- - ~>
|
@@ -36,10 +36,10 @@ dependencies:
|
|
36
36
|
version: '1.2'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
|
-
version_requirements: *
|
39
|
+
version_requirements: *70118335109100
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: fssm
|
42
|
-
requirement: &
|
42
|
+
requirement: &70118335108460 !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
44
|
requirements:
|
45
45
|
- - ! '>='
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
version: 0.2.7
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
|
-
version_requirements: *
|
50
|
+
version_requirements: *70118335108460
|
51
51
|
description: Compass is a Sass-based Stylesheet Framework that streamlines the creation
|
52
52
|
and maintainance of CSS.
|
53
53
|
email: chris@eppsteins.net
|
@@ -127,6 +127,7 @@ files:
|
|
127
127
|
- examples/compass/bootstrap.rb
|
128
128
|
- examples/compass/clean.rb
|
129
129
|
- examples/compass/compass.html.haml
|
130
|
+
- examples/compass/compass_app_log.txt
|
130
131
|
- examples/compass/config.rb
|
131
132
|
- examples/compass/headers.txt
|
132
133
|
- examples/compass/images/blue_arrow.gif
|
@@ -827,6 +828,11 @@ files:
|
|
827
828
|
- test/fixtures/sprites/public/images/nested/squares/ten-by-ten.png
|
828
829
|
- test/fixtures/sprites/public/images/prefix/20-by-20.png
|
829
830
|
- test/fixtures/sprites/public/images/prefix/ten-by-ten.png
|
831
|
+
- test/fixtures/sprites/public/images/repeat_x/five.png
|
832
|
+
- test/fixtures/sprites/public/images/repeat_x/four.png
|
833
|
+
- test/fixtures/sprites/public/images/repeat_x/one.png
|
834
|
+
- test/fixtures/sprites/public/images/repeat_x/three.png
|
835
|
+
- test/fixtures/sprites/public/images/repeat_x/two.png
|
830
836
|
- test/fixtures/sprites/public/images/selectors/ten-by-ten.png
|
831
837
|
- test/fixtures/sprites/public/images/selectors/ten-by-ten_active.png
|
832
838
|
- test/fixtures/sprites/public/images/selectors/ten-by-ten_hover.png
|
@@ -1241,7 +1247,6 @@ files:
|
|
1241
1247
|
- test/integrations/test_rails_helper.rb
|
1242
1248
|
- test/test_helper.rb
|
1243
1249
|
- test/test_helper.rbc
|
1244
|
-
- test/tmp/compass_rails/public/images/selectors-s4c703bbc05.png
|
1245
1250
|
- test/units/actions_test.rb
|
1246
1251
|
- test/units/actions_test.rbc
|
1247
1252
|
- test/units/command_line_test.rb
|
@@ -1262,6 +1267,7 @@ files:
|
|
1262
1267
|
- test/units/sprites/image_test.rbc
|
1263
1268
|
- test/units/sprites/importer_test.rb
|
1264
1269
|
- test/units/sprites/importer_test.rbc
|
1270
|
+
- test/units/sprites/layout_test.rb
|
1265
1271
|
- test/units/sprites/row_fitter_test.rb
|
1266
1272
|
- test/units/sprites/row_fitter_test.rbc
|
1267
1273
|
- test/units/sprites/sprite_command_test.rb
|
@@ -1318,6 +1324,11 @@ test_files:
|
|
1318
1324
|
- test/fixtures/sprites/public/images/nested/squares/ten-by-ten.png
|
1319
1325
|
- test/fixtures/sprites/public/images/prefix/20-by-20.png
|
1320
1326
|
- test/fixtures/sprites/public/images/prefix/ten-by-ten.png
|
1327
|
+
- test/fixtures/sprites/public/images/repeat_x/five.png
|
1328
|
+
- test/fixtures/sprites/public/images/repeat_x/four.png
|
1329
|
+
- test/fixtures/sprites/public/images/repeat_x/one.png
|
1330
|
+
- test/fixtures/sprites/public/images/repeat_x/three.png
|
1331
|
+
- test/fixtures/sprites/public/images/repeat_x/two.png
|
1321
1332
|
- test/fixtures/sprites/public/images/selectors/ten-by-ten.png
|
1322
1333
|
- test/fixtures/sprites/public/images/selectors/ten-by-ten_active.png
|
1323
1334
|
- test/fixtures/sprites/public/images/selectors/ten-by-ten_hover.png
|
@@ -1732,7 +1743,6 @@ test_files:
|
|
1732
1743
|
- test/integrations/test_rails_helper.rb
|
1733
1744
|
- test/test_helper.rb
|
1734
1745
|
- test/test_helper.rbc
|
1735
|
-
- test/tmp/compass_rails/public/images/selectors-s4c703bbc05.png
|
1736
1746
|
- test/units/actions_test.rb
|
1737
1747
|
- test/units/actions_test.rbc
|
1738
1748
|
- test/units/command_line_test.rb
|
@@ -1753,6 +1763,7 @@ test_files:
|
|
1753
1763
|
- test/units/sprites/image_test.rbc
|
1754
1764
|
- test/units/sprites/importer_test.rb
|
1755
1765
|
- test/units/sprites/importer_test.rbc
|
1766
|
+
- test/units/sprites/layout_test.rb
|
1756
1767
|
- test/units/sprites/row_fitter_test.rb
|
1757
1768
|
- test/units/sprites/row_fitter_test.rbc
|
1758
1769
|
- test/units/sprites/sprite_command_test.rb
|
Binary file
|