inline_svg 1.7.2 → 1.8.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/.github/workflows/integration_test.yml +3 -14
- data/.github/workflows/rails_6_webpacker_integration_tests.yaml +58 -0
- data/CHANGELOG.md +9 -3
- data/README.md +3 -2
- data/lib/inline_svg/action_view/helpers.rb +0 -4
- data/lib/inline_svg/propshaft_asset_finder.rb +15 -0
- data/lib/inline_svg/version.rb +1 -1
- data/lib/inline_svg/webpack_asset_finder.rb +1 -1
- data/lib/inline_svg.rb +3 -0
- data/spec/finds_asset_paths_spec.rb +45 -0
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23a2c45f1e25e4266196f0e2fc23a4384cb8513be840d2b676ae848b5be1d121
|
4
|
+
data.tar.gz: 8fdb1090f9037ed6c732469ffda28023e200d758533223d4bd9c85b5a20cfb72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3d98f05ba0b9ea222d1b852f87f30584ba4b775d7b6848a2366341e5e85bb6c9912bc1f8441117d129db4d63506d54dcd8ef4d633a5140359e25f5a829a8a1c
|
7
|
+
data.tar.gz: 45eb7d5c8a30f0814e9c775924690825ad3b3ee9c3ada3c9694bf3af46499ababaa1ba81f696514e08dc09aa5ae6520094820fc528ee34fbb307b856dc16b3f4
|
@@ -8,7 +8,7 @@ jobs:
|
|
8
8
|
runs-on: ubuntu-latest
|
9
9
|
strategy:
|
10
10
|
matrix:
|
11
|
-
test-branch: [
|
11
|
+
test-branch: [rails5, rails6, rails7]
|
12
12
|
steps:
|
13
13
|
- name: Checkout
|
14
14
|
uses: actions/checkout@v2
|
@@ -18,10 +18,10 @@ jobs:
|
|
18
18
|
repository: jamesmartin/inline_svg_test_app
|
19
19
|
ref: ${{ matrix.test-branch }}
|
20
20
|
path: test_app
|
21
|
-
- name: Set up Ruby 2.
|
21
|
+
- name: Set up Ruby 2.7
|
22
22
|
uses: actions/setup-ruby@v1
|
23
23
|
with:
|
24
|
-
ruby-version: 2.
|
24
|
+
ruby-version: 2.7.x
|
25
25
|
- name: Build local gem
|
26
26
|
run: |
|
27
27
|
gem install bundler
|
@@ -41,17 +41,6 @@ jobs:
|
|
41
41
|
run: |
|
42
42
|
cd $GITHUB_WORKSPACE/test_app
|
43
43
|
bundle install --jobs 4 --retry 3
|
44
|
-
- name: Set up Node.js 12.x
|
45
|
-
uses: actions/setup-node@v1
|
46
|
-
with:
|
47
|
-
node-version: 12.x
|
48
|
-
if: matrix.test-branch == 'rails6-webpacker'
|
49
|
-
- name: Generate Webpacker config
|
50
|
-
run: |
|
51
|
-
cd $GITHUB_WORKSPACE/test_app
|
52
|
-
yarn install --check-files
|
53
|
-
bundle exec rake webpacker:compile
|
54
|
-
if: matrix.test-branch == 'rails6-webpacker'
|
55
44
|
- name: Test
|
56
45
|
run: |
|
57
46
|
cd $GITHUB_WORKSPACE/test_app
|
@@ -0,0 +1,58 @@
|
|
1
|
+
name: Rails 6 Webpacker Integration Tests (unreliable)
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
|
8
|
+
runs-on: ubuntu-latest
|
9
|
+
strategy:
|
10
|
+
matrix:
|
11
|
+
test-branch: [rails6-webpacker]
|
12
|
+
steps:
|
13
|
+
- name: Checkout
|
14
|
+
uses: actions/checkout@v2
|
15
|
+
- name: Checkout test app
|
16
|
+
uses: actions/checkout@v2
|
17
|
+
with:
|
18
|
+
repository: jamesmartin/inline_svg_test_app
|
19
|
+
ref: ${{ matrix.test-branch }}
|
20
|
+
path: test_app
|
21
|
+
- name: Set up Ruby 2.7
|
22
|
+
uses: actions/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: 2.7.x
|
25
|
+
- name: Build local gem
|
26
|
+
run: |
|
27
|
+
gem install bundler
|
28
|
+
bundle install --jobs 4 --retry 3
|
29
|
+
bundle exec rake build
|
30
|
+
- name: Use the local gem in the test App
|
31
|
+
id: uselocalgem
|
32
|
+
uses: jacobtomlinson/gha-find-replace@0.1.1
|
33
|
+
with:
|
34
|
+
find: "gem 'inline_svg'"
|
35
|
+
replace: "gem 'inline_svg', path: '${{github.workspace}}'"
|
36
|
+
- name: Check local gem in use
|
37
|
+
run: |
|
38
|
+
test "${{ steps.uselocalgem.outputs.modifiedFiles }}" != "0"
|
39
|
+
grep "inline_svg" $GITHUB_WORKSPACE/test_app/Gemfile
|
40
|
+
- name: Bundle
|
41
|
+
run: |
|
42
|
+
cd $GITHUB_WORKSPACE/test_app
|
43
|
+
bundle install --jobs 4 --retry 3
|
44
|
+
- name: Set up Node.js 16.x
|
45
|
+
uses: actions/setup-node@v2
|
46
|
+
with:
|
47
|
+
node-version: 16
|
48
|
+
if: matrix.test-branch == 'rails6-webpacker'
|
49
|
+
- name: Generate Webpacker config
|
50
|
+
run: |
|
51
|
+
cd $GITHUB_WORKSPACE/test_app
|
52
|
+
yarn install --check-files
|
53
|
+
bundle exec rake webpacker:compile
|
54
|
+
if: matrix.test-branch == 'rails6-webpacker'
|
55
|
+
- name: Test
|
56
|
+
run: |
|
57
|
+
cd $GITHUB_WORKSPACE/test_app
|
58
|
+
bundle exec rake test
|
data/CHANGELOG.md
CHANGED
@@ -4,7 +4,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
5
5
|
## [Unreleased][unreleased]
|
6
6
|
|
7
|
-
|
7
|
+
Nothing.
|
8
|
+
|
9
|
+
## [1.8.0] - 2022-01-09
|
10
|
+
### Added
|
11
|
+
- Remove deprecation warning for `inline_svg`, as we intend to keep it in 2.0. [#131](https://github.com/jamesmartin/inline_svg/pull/131). Thanks [@DanielJackson-Oslo](https://github.com/DanielJackson-Oslo)
|
12
|
+
- Add support for Webpacker 6 beta. [#129](https://github.com/jamesmartin/inline_svg/pull/129). Thanks [@Intrepidd](https://github.com/Intrepidd) and [@tessi](https://github.com/tessi)
|
13
|
+
- Add support for Propshaft assets in Rails 7. [#134](https://github.com/jamesmartin/inline_svg/pull/134). Thanks, [@martinzamuner](https://github.com/martinzamuner)
|
8
14
|
|
9
15
|
## [1.7.2] - 2020-12-07
|
10
16
|
### Fixed
|
@@ -23,7 +29,6 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
23
29
|
- Using Webpacker and Asset Pipeline in a single App could result in SVGs not being found because the wrong `AssetFinder` was used. [#114](https://github.com/jamesmartin/inline_svg/pull/114). Thanks, [@kylefox](https://github.com/kylefox)
|
24
30
|
- Prevent "EOFError error" when using webpack dev server over HTTPS [#113](https://github.com/jamesmartin/inline_svg/pull/113). Thanks, [@kylefox](https://github.com/kylefox)
|
25
31
|
|
26
|
-
|
27
32
|
## [1.6.0] - 2019-11-13
|
28
33
|
### Added
|
29
34
|
- Support Webpack via the new `inline_svg_pack_tag` helper and deprecate `inline_svg` helper in preparation for v2.0.
|
@@ -239,7 +244,8 @@ transformations](https://github.com/jamesmartin/inline_svg/blob/master/README.md
|
|
239
244
|
### Added
|
240
245
|
- Basic Railtie and view helper to inline SVG documents to Rails views.
|
241
246
|
|
242
|
-
[unreleased]: https://github.com/jamesmartin/inline_svg/compare/v1.
|
247
|
+
[unreleased]: https://github.com/jamesmartin/inline_svg/compare/v1.8.0...HEAD
|
248
|
+
[1.8.0]: https://github.com/jamesmartin/inline_svg/compare/v1.7.2...v1.8.0
|
243
249
|
[1.7.2]: https://github.com/jamesmartin/inline_svg/compare/v1.7.1...v1.7.2
|
244
250
|
[1.7.1]: https://github.com/jamesmartin/inline_svg/compare/v1.7.0...v1.7.1
|
245
251
|
[1.7.0]: https://github.com/jamesmartin/inline_svg/compare/v1.6.0...v1.7.0
|
data/README.md
CHANGED
@@ -12,10 +12,11 @@ then embeds it into a view.
|
|
12
12
|
|
13
13
|
Inline SVG supports:
|
14
14
|
|
15
|
-
- [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))
|
16
|
-
- [Rails 4](http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/)
|
17
15
|
- [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))
|
18
16
|
- [Rails 6](https://weblog.rubyonrails.org/2019/4/24/Rails-6-0-rc1-released/) with Sprockets or Webpacker (from [v1.5.2](https://github.com/jamesmartin/inline_svg/releases/tag/v1.5.2)).
|
17
|
+
- [Rails 7](https://weblog.rubyonrails.org/2021/12/6/Rails-7-0-rc-1-released/) (experimental)
|
18
|
+
|
19
|
+
Inline SVG no longer officially supports Rails 3 or Rails 4 (although they may still work). In order to reduce the maintenance cost of this project we now follow the [Rails Maintenance Policy](https://guides.rubyonrails.org/maintenance_policy.html).
|
19
20
|
|
20
21
|
## Changelog
|
21
22
|
|
@@ -17,10 +17,6 @@ module InlineSvg
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def inline_svg(filename, transform_params={})
|
20
|
-
ActiveSupport::Deprecation.warn(
|
21
|
-
'`inline_svg` is deprecated and will be removed from inline_svg 2.0 (use `inline_svg_tag` or `inline_svg_pack_tag` instead)'
|
22
|
-
)
|
23
|
-
|
24
20
|
render_inline_svg(filename, transform_params)
|
25
21
|
end
|
26
22
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module InlineSvg
|
2
|
+
class PropshaftAssetFinder
|
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
|
+
::Rails.application.assets.load_path.find(@filename).path
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/inline_svg/version.rb
CHANGED
data/lib/inline_svg.rb
CHANGED
@@ -3,6 +3,7 @@ require "inline_svg/action_view/helpers"
|
|
3
3
|
require "inline_svg/asset_file"
|
4
4
|
require "inline_svg/cached_asset_file"
|
5
5
|
require "inline_svg/finds_asset_paths"
|
6
|
+
require "inline_svg/propshaft_asset_finder"
|
6
7
|
require "inline_svg/static_asset_finder"
|
7
8
|
require "inline_svg/webpack_asset_finder"
|
8
9
|
require "inline_svg/transform_pipeline"
|
@@ -41,6 +42,8 @@ module InlineSvg
|
|
41
42
|
def asset_finder=(finder)
|
42
43
|
@asset_finder = if finder.respond_to?(:find_asset)
|
43
44
|
finder
|
45
|
+
elsif finder.class.name == "Propshaft::Assembly"
|
46
|
+
InlineSvg::PropshaftAssetFinder
|
44
47
|
else
|
45
48
|
# fallback to a naive static asset finder
|
46
49
|
# (sprokects >= 3.0 && config.assets.precompile = false
|
@@ -45,4 +45,49 @@ describe InlineSvg::FindsAssetPaths do
|
|
45
45
|
expect(InlineSvg::FindsAssetPaths.by_filename('some-file')).to be_nil
|
46
46
|
end
|
47
47
|
end
|
48
|
+
|
49
|
+
context "when propshaft finder returns an object which supports only the pathname method" do
|
50
|
+
it "returns fully qualified file paths from Propshaft" do
|
51
|
+
propshaft = double('PropshaftDouble')
|
52
|
+
|
53
|
+
expect(propshaft).to receive(:find_asset).with('some-file').
|
54
|
+
and_return(double(pathname: Pathname('/full/path/to/some-file')))
|
55
|
+
|
56
|
+
InlineSvg.configure do |config|
|
57
|
+
config.asset_finder = propshaft
|
58
|
+
end
|
59
|
+
|
60
|
+
expect(InlineSvg::FindsAssetPaths.by_filename('some-file')).to eq Pathname('/full/path/to/some-file')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context "when webpack finder returns an object with a relative asset path" do
|
65
|
+
it "returns the fully qualified file path" do
|
66
|
+
webpacker = double('WebpackerDouble')
|
67
|
+
|
68
|
+
expect(webpacker).to receive(:find_asset).with('some-file').
|
69
|
+
and_return(double(filename: Pathname('/full/path/to/some-file')))
|
70
|
+
|
71
|
+
InlineSvg.configure do |config|
|
72
|
+
config.asset_finder = webpacker
|
73
|
+
end
|
74
|
+
|
75
|
+
expect(InlineSvg::FindsAssetPaths.by_filename('some-file')).to eq Pathname('/full/path/to/some-file')
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
context "when webpack finder returns an object with an absolute http asset path" do
|
80
|
+
it "returns the fully qualified file path" do
|
81
|
+
webpacker = double('WebpackerDouble')
|
82
|
+
|
83
|
+
expect(webpacker).to receive(:find_asset).with('some-file').
|
84
|
+
and_return(double(filename: Pathname('https://my-fancy-domain.test/full/path/to/some-file')))
|
85
|
+
|
86
|
+
InlineSvg.configure do |config|
|
87
|
+
config.asset_finder = webpacker
|
88
|
+
end
|
89
|
+
|
90
|
+
expect(InlineSvg::FindsAssetPaths.by_filename('some-file')).to eq Pathname('https://my-fancy-domain.test/full/path/to/some-file')
|
91
|
+
end
|
92
|
+
end
|
48
93
|
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
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Martin
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -130,6 +130,7 @@ extensions: []
|
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
132
|
- ".github/workflows/integration_test.yml"
|
133
|
+
- ".github/workflows/rails_6_webpacker_integration_tests.yaml"
|
133
134
|
- ".github/workflows/ruby.yml"
|
134
135
|
- ".gitignore"
|
135
136
|
- ".rubocop.yml"
|
@@ -147,6 +148,7 @@ files:
|
|
147
148
|
- lib/inline_svg/finds_asset_paths.rb
|
148
149
|
- lib/inline_svg/id_generator.rb
|
149
150
|
- lib/inline_svg/io_resource.rb
|
151
|
+
- lib/inline_svg/propshaft_asset_finder.rb
|
150
152
|
- lib/inline_svg/railtie.rb
|
151
153
|
- lib/inline_svg/static_asset_finder.rb
|
152
154
|
- lib/inline_svg/transform_pipeline.rb
|
@@ -200,7 +202,7 @@ homepage: https://github.com/jamesmartin/inline_svg
|
|
200
202
|
licenses:
|
201
203
|
- MIT
|
202
204
|
metadata: {}
|
203
|
-
post_install_message:
|
205
|
+
post_install_message:
|
204
206
|
rdoc_options: []
|
205
207
|
require_paths:
|
206
208
|
- lib
|
@@ -216,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
218
|
version: '0'
|
217
219
|
requirements: []
|
218
220
|
rubygems_version: 3.1.2
|
219
|
-
signing_key:
|
221
|
+
signing_key:
|
220
222
|
specification_version: 4
|
221
223
|
summary: Embeds an SVG document, inline.
|
222
224
|
test_files:
|