inline_svg 1.2.0 → 1.2.1
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.
Potentially problematic release.
This version of inline_svg might be problematic. Click here for more details.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0744ec1e4d10792a793f1214439367b2d94fd3b
|
4
|
+
data.tar.gz: 23dd2ee7f07558d6c2e27d97da29815bbbdc94d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85ae8c8c0288d74353a1c6636ab731f0af647204e4c8b59460c9a76f60c872c353a3f7c25a2e6d99e44bf74b9bcb6e87e7e7df7f2c7cec086e88ca6e10e82fa5
|
7
|
+
data.tar.gz: a4a4059fedc579a1321471e249e290d078626a96d4a268e78911db79c496d3e39ed7bf271c04833654bd5a3ea5c3cc4f0e66f0e32a0040fc8448ba9d97dca127
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
## [Unreleased][unreleased]
|
6
6
|
- Nothing
|
7
7
|
|
8
|
+
## [1.2.1] - 2017-05-02
|
9
|
+
### Fixed
|
10
|
+
- Select most exactly matching cached asset file when multiple files match
|
11
|
+
given asset name [#64](https://github.com/jamesmartin/inline_svg/pull/64)
|
12
|
+
|
8
13
|
## [1.2.0] - 2017-04-20
|
9
14
|
### Added
|
10
15
|
- Cached asset file (load assets into memory at boot time)
|
@@ -154,7 +159,8 @@ transformations](https://github.com/jamesmartin/inline_svg/blob/master/README.md
|
|
154
159
|
### Added
|
155
160
|
- Basic Railtie and view helper to inline SVG documents to Rails views.
|
156
161
|
|
157
|
-
[unreleased]: https://github.com/jamesmartin/inline_svg/compare/v1.2.
|
162
|
+
[unreleased]: https://github.com/jamesmartin/inline_svg/compare/v1.2.1...HEAD
|
163
|
+
[1.2.1]: https://github.com/jamesmartin/inline_svg/compare/v1.2.0...v1.2.1
|
158
164
|
[1.2.0]: https://github.com/jamesmartin/inline_svg/compare/v1.1.0...v1.2.0
|
159
165
|
[1.1.0]: https://github.com/jamesmartin/inline_svg/compare/v1.0.1...v1.1.0
|
160
166
|
[1.0.1]: https://github.com/jamesmartin/inline_svg/compare/v1.0.0...v1.0.1
|
@@ -31,11 +31,25 @@ module InlineSvg
|
|
31
31
|
end
|
32
32
|
|
33
33
|
private
|
34
|
-
# Internal: Finds the key for a given asset name (using a Regex).
|
34
|
+
# Internal: Finds the key for a given asset name (using a Regex). In the
|
35
|
+
# event of an ambiguous asset_name matching multiple assets, this method
|
36
|
+
# ranks the matches by their full file path, choosing the shortest (most
|
37
|
+
# exact) match over all others.
|
35
38
|
#
|
36
|
-
# Returns a String representing the key for the named asset
|
39
|
+
# Returns a String representing the key for the named asset or nil if there
|
40
|
+
# is no match.
|
37
41
|
def key_for_asset(asset_name)
|
38
|
-
|
42
|
+
match = all_keys_matching(asset_name).sort do |a, b|
|
43
|
+
a.string.size <=> b.string.size
|
44
|
+
end.first
|
45
|
+
match && match.string
|
46
|
+
end
|
47
|
+
|
48
|
+
# Internal: Find all potential asset keys matching the given asset name.
|
49
|
+
#
|
50
|
+
# Returns an array of MatchData objects for keys matching the asset name.
|
51
|
+
def all_keys_matching(asset_name)
|
52
|
+
assets.keys.map { |k| /(#{asset_name})/.match(k.to_s) }.compact
|
39
53
|
end
|
40
54
|
|
41
55
|
# Internal: Recursively descends through current_paths reading each file it
|
data/lib/inline_svg/version.rb
CHANGED
@@ -34,6 +34,18 @@ describe InlineSvg::CachedAssetFile do
|
|
34
34
|
expect(known_document_1).to eq(asset_loader.named("assets1/known-document.svg"))
|
35
35
|
end
|
36
36
|
|
37
|
+
it "chooses the closest exact matching file when similar files exist in the same path" do
|
38
|
+
known_document = File.read(fixture_path.join("assets0", "known-document.svg"))
|
39
|
+
known_document_2 = File.read(fixture_path.join("assets0", "known-document-two.svg"))
|
40
|
+
|
41
|
+
expect(known_document).not_to eq(known_document_2)
|
42
|
+
|
43
|
+
asset_loader = InlineSvg::CachedAssetFile.new(paths: fixture_path.join("assets0"), filters: /\.svg/)
|
44
|
+
|
45
|
+
expect(asset_loader.named("known-document")).to eq(known_document)
|
46
|
+
expect(asset_loader.named("known-document-two")).to eq(known_document_2)
|
47
|
+
end
|
48
|
+
|
37
49
|
it "filters wanted files by simple string matching" do
|
38
50
|
known_document_0 = File.read(fixture_path.join("assets0", "known-document.svg"))
|
39
51
|
known_document_1 = File.read(fixture_path.join("assets1", "known-document.svg"))
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg>other interesting content</svg>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inline_svg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Martin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,6 +150,7 @@ files:
|
|
150
150
|
- spec/asset_file_spec.rb
|
151
151
|
- spec/cached_asset_file_spec.rb
|
152
152
|
- spec/files/example.svg
|
153
|
+
- spec/files/static_assets/assets0/known-document-two.svg
|
153
154
|
- spec/files/static_assets/assets0/known-document.svg
|
154
155
|
- spec/files/static_assets/assets0/some-document.svg
|
155
156
|
- spec/files/static_assets/assets1/known-document.svg
|
@@ -199,6 +200,7 @@ test_files:
|
|
199
200
|
- spec/asset_file_spec.rb
|
200
201
|
- spec/cached_asset_file_spec.rb
|
201
202
|
- spec/files/example.svg
|
203
|
+
- spec/files/static_assets/assets0/known-document-two.svg
|
202
204
|
- spec/files/static_assets/assets0/known-document.svg
|
203
205
|
- spec/files/static_assets/assets0/some-document.svg
|
204
206
|
- spec/files/static_assets/assets1/known-document.svg
|