inline_svg 1.4.0 → 1.5.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.

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
  SHA256:
3
- metadata.gz: 52f5490767e351a088411f8254fb15e480581f7ea1bdff75a2215381c9fb2b78
4
- data.tar.gz: f99942d0bd757bfe3dae3b9d4b0020f66241c1303c918b9d959e59b858b53135
3
+ metadata.gz: c7e8c4d03d15f0fdd876912e329fca61646c3dc917c3745a0f862dde2490ea2e
4
+ data.tar.gz: 606861334da0b46952d84ea19b3779405e26f411cedad03bf9dbe1973e387b3a
5
5
  SHA512:
6
- metadata.gz: 26f337f5bfc1dcd438ec10a7d4d4fd0a3404a57bc9563cb1b0ec3a0fa119f18f1fd95436be80f682a0f9d4a43dd3876fe5a79589a875192a6dc302801e486c13
7
- data.tar.gz: f273c2270832a82a1edf9a964f1e52f63fc6a0f8156967e7fea29bc04b11767b70ddd3a26ef2cb152e8af0804fc769f03d28d4876ed9fb8472380f0670cab83b
6
+ metadata.gz: 05bb315a0a78041729e04f1860b0399e38acfcdec6729b49646b52c2a532721484b23ec6f005ade488570e057987f0761eee31d9fca541a09c712e073a4ae2c6
7
+ data.tar.gz: 0da8510891479fd88bf32e6f4a46fe001c861b64fba136609e5756b893fb86d4ebaaef40c048b132a745c954d9ddcb7f938ba218d7d94277ee61140b6d5529f6
data/CHANGELOG.md CHANGED
@@ -3,7 +3,9 @@ All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
5
  ## [Unreleased][unreleased]
6
- - Nothing
6
+ ### Added
7
+ - Support for finding assets bundled by Webpacker
8
+ [#96](https://github.com/jamesmartin/inline_svg/pull/96)
7
9
 
8
10
  ## [1.4.0] - 2019-04-19
9
11
  ### Fixed
data/README.md CHANGED
@@ -6,7 +6,7 @@ Styling a SVG document with CSS for use on the web is most reliably achieved by
6
6
  [adding classes to the document and
7
7
  embedding](http://css-tricks.com/using-svg/) it inline in the HTML.
8
8
 
9
- This gem adds a Rails helper method (`inline_svg`) that reads an SVG document (via Sprockets, so works with the Rails Asset Pipeline), applies a CSS class attribute to the root of the document and
9
+ This gem adds a Rails helper method (`inline_svg`) that reads an SVG document (via Sprockets or Webpacker, so works with the Rails Asset Pipeline), applies a CSS class attribute to the root of the document and
10
10
  then embeds it into a view.
11
11
 
12
12
  Inline SVG supports [Rails 3](http://weblog.rubyonrails.org/2010/8/29/rails-3-0-it-s-done/) (from [v0.12.0](https://github.com/jamesmartin/inline_svg/releases/tag/v0.12.0)), [Rails 4](http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/) and [Rails 5](http://weblog.rubyonrails.org/2016/6/30/Rails-5-0-final/) (from [v0.10.0](https://github.com/jamesmartin/inline_svg/releases/tag/v0.10.0)).
@@ -303,6 +303,29 @@ InlineSvg.configure do |config|
303
303
  end
304
304
  ```
305
305
 
306
+ ## Sprockets and Webpacker
307
+
308
+ Inline SVG supports SVGs bundled by either Sprockets or Webpacker, however, be
309
+ aware that the gem will *always* attempt to find SVGs using Sprockts if it is
310
+ enabled.
311
+
312
+ By default, Inline SVG will use Sprockets to find SVG files if it is enabled in
313
+ your Rails project.
314
+
315
+ If you have upgraded an older Rails project from Sprockets to Webpacker and you
316
+ no longer want to use Sprockets at all, you should disable the Asset Pipeline
317
+ and Inline SVG will use Webpacker automatically.
318
+
319
+ If you have both Sprockets *and* Webpacker enabled for some reason and you want
320
+ Inline SVG to use Webpacker to find SVGs then you should configure the
321
+ `asset_finder` appropriately:
322
+
323
+ ```ruby
324
+ InlineSvg.configure do |config|
325
+ config.asset_finder = InlineSvg::WebpackAssetFinder
326
+ end
327
+ ```
328
+
306
329
  ## Contributing
307
330
 
308
331
  1. Fork it ( [http://github.com/jamesmartin/inline_svg/fork](http://github.com/jamesmartin/inline_svg/fork) )
data/lib/inline_svg.rb CHANGED
@@ -4,6 +4,7 @@ require "inline_svg/asset_file"
4
4
  require "inline_svg/cached_asset_file"
5
5
  require "inline_svg/finds_asset_paths"
6
6
  require "inline_svg/static_asset_finder"
7
+ require "inline_svg/webpack_asset_finder"
7
8
  require "inline_svg/transform_pipeline"
8
9
  require "inline_svg/io_resource"
9
10
 
@@ -15,7 +15,11 @@ module InlineSvg
15
15
  # Only set this when a user-configured asset finder has not been
16
16
  # configured already.
17
17
  if config.asset_finder.nil?
18
- config.asset_finder = app.instance_variable_get(:@assets)
18
+ if assets = app.instance_variable_get(:@assets)
19
+ config.asset_finder = assets
20
+ elsif defined?(Webpacker)
21
+ config.asset_finder = InlineSvg::WebpackAssetFinder
22
+ end
19
23
  end
20
24
  end
21
25
  end
@@ -1,3 +1,3 @@
1
1
  module InlineSvg
2
- VERSION = "1.4.0"
2
+ VERSION = "1.5.0"
3
3
  end
@@ -0,0 +1,19 @@
1
+ module InlineSvg
2
+ class WebpackAssetFinder
3
+ def self.find_asset(filename)
4
+ new(filename)
5
+ end
6
+
7
+ def initialize(filename)
8
+ @filename = filename
9
+ end
10
+
11
+ def pathname
12
+ public_path = Webpacker.config.public_path
13
+ file_path = Webpacker.instance.manifest.lookup(@filename)
14
+ return unless public_path && file_path
15
+
16
+ File.join(public_path, file_path)
17
+ end
18
+ end
19
+ end
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.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-19 00:00:00.000000000 Z
11
+ date: 2019-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -167,6 +167,7 @@ files:
167
167
  - lib/inline_svg/transform_pipeline/transformations/transformation.rb
168
168
  - lib/inline_svg/transform_pipeline/transformations/width.rb
169
169
  - lib/inline_svg/version.rb
170
+ - lib/inline_svg/webpack_asset_finder.rb
170
171
  - spec/asset_file_spec.rb
171
172
  - spec/cached_asset_file_spec.rb
172
173
  - spec/files/example.svg