lib/rails-sass-images/sass/inline.rb in rails-sass-images-0.5 vs lib/rails-sass-images/sass/inline.rb in rails-sass-images-0.6
- old
+ new
@@ -1,5 +1,6 @@
+require 'cgi'
require 'mime-types'
module RailsSassImages::Sass
# Inline asset file to CSS by data-uri. Can be used for images and fonts.
#
@@ -12,10 +13,17 @@
def inline(path)
asset = RailsSassImages.asset(path)
mime = MIME::Types.type_for(asset.to_s).first.content_type
file = asset.read
- file = [file].flatten.pack('m').gsub("\n", '')
- Sass::Script::String.new("url('data:#{mime};base64,#{file}')")
+ if mime == 'image/svg+xml'
+ file = CGI::escape(file).gsub('+', '%20')
+ encoding = 'charset=utf-8'
+ else
+ file = [file].flatten.pack('m').gsub("\n", '')
+ encoding = 'base64'
+ end
+
+ Sass::Script::String.new("url('data:#{mime};#{encoding},#{file}')")
end
end