esvg 2.4.1 → 2.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -1
- data/lib/esvg/svg.rb +25 -20
- data/lib/esvg/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b087a02dc8dc7a7441b1e1947004e94ec92c0da
|
4
|
+
data.tar.gz: 6493260130cb04bbb057919c7fd73ab905794105
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd65cb5d99def4eb3100975670c760e7f4bfed24bd7117844844d3c813d4e5dca289246e45d7cc3c439b0d80be8d73fe3329f3b3d0e3b8417f4ee7bab837c7f4
|
7
|
+
data.tar.gz: cd900bbfd5310726d2b946eb82c6f694cf7f947fd2b9a663105a09014364b1876c48f40228b2a0577ed2e795d399a026271e5047196d1c78d00b248c3127ead6
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
### 2.4.2 (2015-10-26)
|
4
|
+
- Fix: Improved reliability and speed of optimization with svgo, by writing a temp file to the file system.
|
5
|
+
|
3
6
|
### 2.4.1 (2015-10-17)
|
4
|
-
- Fix:
|
7
|
+
- Fix: icon embedding (with ruby/rails) uses proper key for lookup.
|
5
8
|
|
6
9
|
### 2.4.0 (2015-10-17)
|
7
10
|
- New: Caching is now based on file modification times. It's much faster and more efficient.
|
data/lib/esvg/svg.rb
CHANGED
@@ -112,15 +112,6 @@ module Esvg
|
|
112
112
|
}
|
113
113
|
end
|
114
114
|
|
115
|
-
#def compress(file)
|
116
|
-
#if config[:optimize] && svgo?
|
117
|
-
#Compress files outputting to $STDOUT which returns as a string
|
118
|
-
#`#{@svgo} #{file} -o -`
|
119
|
-
#else
|
120
|
-
#File.read(file)
|
121
|
-
#end
|
122
|
-
#end
|
123
|
-
|
124
115
|
def use_svg(file, content)
|
125
116
|
name = classname(file)
|
126
117
|
%Q{<svg class="#{config[:base_class]} #{name}" #{dimensions(content)}><use xlink:href="##{name}"/></svg>}
|
@@ -198,6 +189,12 @@ module Esvg
|
|
198
189
|
end
|
199
190
|
end
|
200
191
|
|
192
|
+
def write_svg(svg)
|
193
|
+
path = File.join(config[:path], '.esvg-cache')
|
194
|
+
write_file path, svg
|
195
|
+
path
|
196
|
+
end
|
197
|
+
|
201
198
|
def write_js
|
202
199
|
write_file config[:js_path], js
|
203
200
|
end
|
@@ -254,10 +251,24 @@ module Esvg
|
|
254
251
|
end
|
255
252
|
|
256
253
|
def prep_svg(file, content)
|
257
|
-
content.gsub(/<svg.+?>/, %Q{<svg class="#{classname(file)}" #{dimensions(content)}>}) # convert svg to symbols
|
258
|
-
.gsub(/\n/, '') #
|
259
|
-
.gsub(/\s{2,}/, ' ') #
|
260
|
-
.gsub(/>\s+</, '><') #
|
254
|
+
content = content.gsub(/<svg.+?>/, %Q{<svg class="#{classname(file)}" #{dimensions(content)}>}) # convert svg to symbols
|
255
|
+
.gsub(/\n/, '') # Remove endlines
|
256
|
+
.gsub(/\s{2,}/, ' ') # Remove whitespace
|
257
|
+
.gsub(/>\s+</, '><') # Remove whitespace between tags
|
258
|
+
.gsub(/style="([^"]*?)fill:(.+?);/m, 'fill="\2" style="\1') # Make fill a property instead of a style
|
259
|
+
.gsub(/style="([^"]*?)fill-opacity:(.+?);/m, 'fill-opacity="\2" style="\1') # Move fill-opacity a property instead of a style
|
260
|
+
.gsub(/\s?style=".*?";?/,'') # Strip style property
|
261
|
+
.gsub(/\s?fill="(#0{3,6}|black|rgba?\(0,0,0\))"/,'') # Strip black fill
|
262
|
+
end
|
263
|
+
|
264
|
+
def optimize(svg)
|
265
|
+
if config[:optimize] && svgo?
|
266
|
+
path = write_svg(svg)
|
267
|
+
svg = `svgo '#{path}' -o -`
|
268
|
+
FileUtils.rm(path)
|
269
|
+
end
|
270
|
+
|
271
|
+
svg
|
261
272
|
end
|
262
273
|
|
263
274
|
def html
|
@@ -269,13 +280,7 @@ module Esvg
|
|
269
280
|
symbols << prep_svg(name, data[:content])
|
270
281
|
end
|
271
282
|
|
272
|
-
symbols =
|
273
|
-
`svgo -s '#{symbols.join}' -o -`
|
274
|
-
else
|
275
|
-
symbols.join
|
276
|
-
end
|
277
|
-
|
278
|
-
symbols = symbols.gsub(/class/,'id').gsub(/svg/,'symbol')
|
283
|
+
symbols = optimize(symbols.join).gsub(/class/,'id').gsub(/svg/,'symbol')
|
279
284
|
|
280
285
|
%Q{<svg id="esvg-symbols" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none">#{symbols}</svg>}
|
281
286
|
end
|
data/lib/esvg/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: esvg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Mathis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|