sprockets-svg 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sprockets/svg.rb +9 -1
- data/lib/sprockets/svg/version.rb +1 -1
- data/spec/rails_spec.rb +8 -3
- data/sprockets-svg.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d949c8b7f229dbf52884938e1cc7f024327d8258
|
4
|
+
data.tar.gz: 2a9bc2ad1096ce3a015319197fe1014e4bf44fbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1f78be0778e8fae21dfc44377414649f535e520e4baa5dbcf1c9e3a256ae4c170f7db33f436783e418ee52c6171c5d674114c4c9d56414bf6dc5d6749021ff4
|
7
|
+
data.tar.gz: c32cf46a4766d384e5094ddc5dae98f3cc2481e1a496acec97d8e6f5c4a7398fb6b874835adacc1db28c10bd504ddea0a113a8cb6a31842bd559a7d4b8170192
|
data/lib/sprockets/svg.rb
CHANGED
@@ -1,17 +1,25 @@
|
|
1
1
|
require 'sprockets/svg/version'
|
2
|
-
|
2
|
+
require 'chunky_png'
|
3
3
|
require 'rmagick'
|
4
4
|
|
5
5
|
module Sprockets
|
6
6
|
module Svg
|
7
7
|
extend self
|
8
8
|
|
9
|
+
USELESS_PNG_METADATA = %w(svg:base-uri date:create date:modify).freeze
|
10
|
+
|
9
11
|
# TODO: integrate svgo instead: https://github.com/svg/svgo
|
10
12
|
# See https://github.com/lautis/uglifier on how to integrate a npm package as a gem.
|
11
13
|
def self.convert(svg_blob)
|
12
14
|
image_list = Magick::Image.from_blob(svg_blob) { self.format = 'SVG' }
|
13
15
|
image = image_list.first
|
14
16
|
image.format = 'PNG'
|
17
|
+
strip_png_metadata(image.to_blob)
|
18
|
+
end
|
19
|
+
|
20
|
+
def strip_png_metadata(png_blob)
|
21
|
+
image = ChunkyPNG::Image.from_blob(png_blob)
|
22
|
+
USELESS_PNG_METADATA.each(&image.metadata.method(:delete))
|
15
23
|
image.to_blob
|
16
24
|
end
|
17
25
|
|
data/spec/rails_spec.rb
CHANGED
@@ -25,7 +25,7 @@ describe 'Sprockets::Svg' do
|
|
25
25
|
|
26
26
|
let(:manifest) { JSON.parse(File.read(manifest_path)) }
|
27
27
|
|
28
|
-
let(:
|
28
|
+
let(:png_fingerprint) { Digest::MD5.hexdigest(png_path.read) }
|
29
29
|
|
30
30
|
describe 'Rake task' do
|
31
31
|
before :each do
|
@@ -48,8 +48,13 @@ describe 'Sprockets::Svg' do
|
|
48
48
|
expect(png_path).to be_exist
|
49
49
|
|
50
50
|
expect(svg_fingerprint).to be == '2d8738f246e37a7befd06db8dc2f7e11'
|
51
|
-
|
52
|
-
|
51
|
+
|
52
|
+
png_metadata = ChunkyPNG::Image.from_file(png_path.to_s).metadata
|
53
|
+
expect(png_metadata).to be_empty
|
54
|
+
|
55
|
+
# Metadata usually contains some timestamps, so sleeping is the best way to make sure they are all stripped
|
56
|
+
sleep 1
|
57
|
+
expect(png_fingerprint).to be == Digest::MD5.hexdigest(Sprockets::Svg.convert(svg_path.read))
|
53
58
|
|
54
59
|
expect(manifest['files'][svg_name]).to be_present
|
55
60
|
expect(manifest['files'][png_name]).to be_present
|
data/sprockets-svg.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprockets-svg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean Boussier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: chunky_png
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Minify SVG assets, and optionally convert them to PNG for browser compatibility.
|
70
84
|
email:
|
71
85
|
- jean.boussier@gmail.com
|