Add tests, fix some bugs in the image_size helpers, dropped support for bmp because it was broken.
This commit is contained in:
parent
bae616e217
commit
0a3947d320
@ -1,10 +1,12 @@
|
|||||||
module Compass::SassExtensions::Functions::ImageSize
|
module Compass::SassExtensions::Functions::ImageSize
|
||||||
|
# Returns the width of the image relative to the images directory
|
||||||
def image_width(image_file)
|
def image_width(image_file)
|
||||||
image_path = real_path(image_file)
|
image_path = real_path(image_file)
|
||||||
width = ImageProperties.new(image_path).size.first
|
width = ImageProperties.new(image_path).size.first
|
||||||
Sass::Script::Number.new(width,["px"])
|
Sass::Script::Number.new(width,["px"])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Returns the height of the image relative to the images directory
|
||||||
def image_height(image_file)
|
def image_height(image_file)
|
||||||
image_path = real_path(image_file)
|
image_path = real_path(image_file)
|
||||||
height = ImageProperties.new(image_path).size.last
|
height = ImageProperties.new(image_path).size.last
|
||||||
@ -15,8 +17,8 @@ private
|
|||||||
def real_path(image_file)
|
def real_path(image_file)
|
||||||
path = image_file.value
|
path = image_file.value
|
||||||
# Compute the real path to the image on the file stystem if the images_dir is set.
|
# Compute the real path to the image on the file stystem if the images_dir is set.
|
||||||
if Compass.configuration.images_dir
|
if Compass.configuration.images_path
|
||||||
File.join(Compass.configuration.project_path, Compass.configuration.images_dir, path)
|
File.join(Compass.configuration.images_path, path)
|
||||||
else
|
else
|
||||||
File.join(Compass.configuration.project_path, path)
|
File.join(Compass.configuration.project_path, path)
|
||||||
end
|
end
|
||||||
@ -29,7 +31,9 @@ private
|
|||||||
end
|
end
|
||||||
|
|
||||||
def size
|
def size
|
||||||
@dimensions ||= send("get_size_for_#{@file_type}")
|
@dimensions ||= send(:"get_size_for_#{@file_type}")
|
||||||
|
rescue NoMethodError
|
||||||
|
raise Sass::SyntaxError, "Unrecognized file type: #{@file_type}"
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@ -39,12 +43,6 @@ private
|
|||||||
|
|
||||||
def get_size_for_gif
|
def get_size_for_gif
|
||||||
size = IO.read(@file)[6..10].unpack('SS')
|
size = IO.read(@file)[6..10].unpack('SS')
|
||||||
size.inspect
|
|
||||||
end
|
|
||||||
|
|
||||||
def get_size_for_bmp
|
|
||||||
d = IO.read(@file)[14..28]
|
|
||||||
d[0] == 40 ? d[4..-1].unpack('LL') : d[4..8].unpack('SS')
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_size_for_jpg
|
def get_size_for_jpg
|
||||||
|
@ -42,7 +42,7 @@ class CompassTest < Test::Unit::TestCase
|
|||||||
each_css_file(proj.css_path) do |css_file|
|
each_css_file(proj.css_path) do |css_file|
|
||||||
assert_no_errors css_file, 'compass'
|
assert_no_errors css_file, 'compass'
|
||||||
end
|
end
|
||||||
assert_renders_correctly :reset, :layout, :utilities, :gradients
|
assert_renders_correctly :reset, :layout, :utilities, :gradients, :image_size
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
BIN
test/fixtures/stylesheets/compass/100x150.jpg
vendored
Normal file
BIN
test/fixtures/stylesheets/compass/100x150.jpg
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
15
test/fixtures/stylesheets/compass/css/image_size.css
vendored
Normal file
15
test/fixtures/stylesheets/compass/css/image_size.css
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
.png {
|
||||||
|
width: 100px;
|
||||||
|
height: 150px; }
|
||||||
|
|
||||||
|
.jpg {
|
||||||
|
width: 100px;
|
||||||
|
height: 150px; }
|
||||||
|
|
||||||
|
.jpeg {
|
||||||
|
width: 100px;
|
||||||
|
height: 150px; }
|
||||||
|
|
||||||
|
.gif {
|
||||||
|
width: 100px;
|
||||||
|
height: 150px; }
|
BIN
test/fixtures/stylesheets/compass/images/100x150.gif
vendored
Normal file
BIN
test/fixtures/stylesheets/compass/images/100x150.gif
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
test/fixtures/stylesheets/compass/images/100x150.jpeg
vendored
Normal file
BIN
test/fixtures/stylesheets/compass/images/100x150.jpeg
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
test/fixtures/stylesheets/compass/images/100x150.jpg
vendored
Normal file
BIN
test/fixtures/stylesheets/compass/images/100x150.jpg
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
test/fixtures/stylesheets/compass/images/100x150.png
vendored
Normal file
BIN
test/fixtures/stylesheets/compass/images/100x150.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
12
test/fixtures/stylesheets/compass/sass/image_size.sass
vendored
Normal file
12
test/fixtures/stylesheets/compass/sass/image_size.sass
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
.png
|
||||||
|
width= image_width("100x150.png")
|
||||||
|
height= image_height("100x150.png")
|
||||||
|
.jpg
|
||||||
|
width= image_width("100x150.jpg")
|
||||||
|
height= image_height("100x150.jpg")
|
||||||
|
.jpeg
|
||||||
|
width= image_width("100x150.jpeg")
|
||||||
|
height= image_height("100x150.jpeg")
|
||||||
|
.gif
|
||||||
|
width= image_width("100x150.gif")
|
||||||
|
height= image_height("100x150.gif")
|
Loading…
Reference in New Issue
Block a user