def sprite_position(map, sprite = nil, offset_x = ZERO, offset_y = ZERO, use_percentages = BOOL_FALSE)
assert_type offset_x, :Number
assert_type offset_y, :Number
sprite = convert_sprite_name(sprite)
verify_map(map, "sprite-position")
unless sprite.is_a?(Sass::Script::Value::String) || sprite.is_a?(Sass::Script::Value::Number)
raise Sass::SyntaxError, %Q(The second argument to sprite-position must be a sprite name. See http://beta.compass-style.org/help/tutorials/spriting/ for more information.)
end
image = map.image_for(sprite.value)
unless image
missing_image!(map, sprite)
end
if use_percentages.value
xdivis = map.width - image.width;
x = (offset_x.value + image.left.to_f) / (xdivis.nonzero? || 1) * 100
x = x == 0 ? number(x) : number(x, "%")
ydivis = map.height - image.height;
y = (offset_y.value + image.top.to_f) / (ydivis.nonzero? || 1) * 100
y = y == 0 ? number(y) : number(y, "%")
else
if offset_x.unit_str == "%"
x = offset_x
else
x = offset_x.value - image.left
x = x == 0 ? number(x) : number(x, "px")
end
y = offset_y.value - image.top
y = y == 0 ? number(y) : number(y, "px")
end
list(x, y, :space)
end