inline_svg 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.

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: d0744ec1e4d10792a793f1214439367b2d94fd3b
4
- data.tar.gz: 23dd2ee7f07558d6c2e27d97da29815bbbdc94d5
3
+ metadata.gz: 57995dd216d10c2510f21c3dd8c4901eddf3e3e3
4
+ data.tar.gz: 8a7bde8b778843e483350f3d0ee26ddb8d6d624a
5
5
  SHA512:
6
- metadata.gz: 85ae8c8c0288d74353a1c6636ab731f0af647204e4c8b59460c9a76f60c872c353a3f7c25a2e6d99e44bf74b9bcb6e87e7e7df7f2c7cec086e88ca6e10e82fa5
7
- data.tar.gz: a4a4059fedc579a1321471e249e290d078626a96d4a268e78911db79c496d3e39ed7bf271c04833654bd5a3ea5c3cc4f0e66f0e32a0040fc8448ba9d97dca127
6
+ metadata.gz: ccfc12998a8e3e64a8a1a338905673259118aaa84c6d67cd0a94ed11d4372102838a92dd4fb7f3d7a0c7e4c1b4475d627df7feb1b84090816a0ffef1fa6b424c
7
+ data.tar.gz: 90940b65ec989da35c2ccf3e25aaacd5d0cced3f175bb99ce55b6b5d091797a1e78d7c498011cd98427d31f10af54d12e635ed6ba55a983ef0f1529c2945cd74
data/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).
5
5
  ## [Unreleased][unreleased]
6
6
  - Nothing
7
7
 
8
+ ## [1.2.2] - 2017-07-06
9
+ ### Fixed
10
+ - Handle malformed documents that don't contain a root SVG element
11
+ [#60](https://github.com/jamesmartin/inline_svg/pull/65)
12
+ ### Added
13
+ - Add configurable CSS class to empty SVG document
14
+ [#67](https://github.com/jamesmartin/inline_svg/pull/67)
15
+
8
16
  ## [1.2.1] - 2017-05-02
9
17
  ### Fixed
10
18
  - Select most exactly matching cached asset file when multiple files match
@@ -159,7 +167,8 @@ transformations](https://github.com/jamesmartin/inline_svg/blob/master/README.md
159
167
  ### Added
160
168
  - Basic Railtie and view helper to inline SVG documents to Rails views.
161
169
 
162
- [unreleased]: https://github.com/jamesmartin/inline_svg/compare/v1.2.1...HEAD
170
+ [unreleased]: https://github.com/jamesmartin/inline_svg/compare/v1.2.2...HEAD
171
+ [1.2.2]: https://github.com/jamesmartin/inline_svg/compare/v1.2.1...v1.2.2
163
172
  [1.2.1]: https://github.com/jamesmartin/inline_svg/compare/v1.2.0...v1.2.1
164
173
  [1.2.0]: https://github.com/jamesmartin/inline_svg/compare/v1.1.0...v1.2.0
165
174
  [1.1.0]: https://github.com/jamesmartin/inline_svg/compare/v1.0.1...v1.1.0
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Inline SVG
2
2
 
3
- [![CircleCI](https://circleci.com/gh/jamesmartin/inline_svg.svg?style=svg)](https://circleci.com/gh/jamesmartin/inline_svg)
3
+ [![Build Status](https://travis-ci.org/jamesmartin/inline_svg.svg?branch=master)](https://travis-ci.org/jamesmartin/inline_svg)
4
4
 
5
5
  Styling a SVG document with CSS for use on the web is most reliably achieved by
6
6
  [adding classes to the document and
@@ -71,10 +71,10 @@ blue:
71
71
  }
72
72
  ```
73
73
 
74
- ## Options
74
+ ## Options
75
75
 
76
76
  key | description
77
- :---------------------- | :----------
77
+ :---------------------- | :----------
78
78
  `id` | set a ID attribute on the SVG
79
79
  `class` | set a CSS class attribute on the SVG
80
80
  `data` | add data attributes to the SVG (supply as a hash)
@@ -133,10 +133,9 @@ For example, inherit from `InlineSvg::CustomTransformation` and implement the `#
133
133
 
134
134
  class MyCustomTransform < InlineSvg::CustomTransformation
135
135
  def transform(doc)
136
- doc = Nokogiri::XML::Document.parse(doc.to_html)
137
- svg = doc.at_css 'svg'
138
- svg['custom'] = value
139
- doc
136
+ with_svg(doc) do |svg|
137
+ svg["custom"] = value
138
+ end
140
139
  end
141
140
  end
142
141
  ```
@@ -257,6 +256,31 @@ end
257
256
  restricted to as few paths as possible, and using the filter option to further
258
257
  restrict assets to only those likely to be used by `inline_svg`.
259
258
 
259
+ ## Missing SVG Files
260
+
261
+ If the specified SVG file cannot be found a helpful, empty SVG document is
262
+ embedded into the page instead. The embedded document contains a single comment
263
+ displaying the filename of the SVG image the helper tried to render:
264
+
265
+ ```html
266
+ <svg><!-- SVG file not found: 'some-missing-file.svg' --></svg>
267
+ ```
268
+
269
+ You may apply a class to this empty SVG document by specifying the following
270
+ configuration:
271
+
272
+ ```rb
273
+ InlineSvg.configure do |config|
274
+ config.svg_not_found_css_class = 'svg-not-found'
275
+ end
276
+ ```
277
+
278
+ Which would instead render:
279
+
280
+ ```html
281
+ <svg class='svg-not-found'><!-- SVG file not found: 'some-missing-file.svg' --></svg>
282
+ ```
283
+
260
284
  ## Contributing
261
285
 
262
286
  1. Fork it ( [http://github.com/jamesmartin/inline_svg/fork](http://github.com/jamesmartin/inline_svg/fork) )
data/Rakefile CHANGED
@@ -1 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec) do |t|
5
+ t.pattern = Dir.glob("spec/**/*_spec.rb")
6
+ #t.rspec_opts = "--format documentation"
7
+ end
8
+ task :default => :spec
data/lib/inline_svg.rb CHANGED
@@ -15,11 +15,12 @@ module InlineSvg
15
15
  class Configuration
16
16
  class Invalid < ArgumentError; end
17
17
 
18
- attr_reader :asset_file, :asset_finder, :custom_transformations
18
+ attr_reader :asset_file, :asset_finder, :custom_transformations, :svg_not_found_css_class
19
19
 
20
20
  def initialize
21
21
  @custom_transformations = {}
22
22
  @asset_file = InlineSvg::AssetFile
23
+ @svg_not_found_css_class = nil
23
24
  end
24
25
 
25
26
  def asset_file=(custom_asset_file)
@@ -47,6 +48,12 @@ module InlineSvg
47
48
  asset_finder
48
49
  end
49
50
 
51
+ def svg_not_found_css_class=(css_class)
52
+ if css_class.present? && css_class.is_a?(String)
53
+ @svg_not_found_css_class = css_class
54
+ end
55
+ end
56
+
50
57
  def add_custom_transformation(options)
51
58
  if incompatible_transformation?(options.fetch(:transform))
52
59
  raise InlineSvg::Configuration::Invalid.new("#{options.fetch(:transform)} should implement the .create_with_value and #transform methods")
@@ -12,7 +12,11 @@ module InlineSvg
12
12
  configured_asset_file.named filename
13
13
  end
14
14
  rescue InlineSvg::AssetFile::FileNotFound
15
- return "<svg><!-- SVG file not found: '#{filename}' #{extension_hint(filename)}--></svg>".html_safe
15
+ if InlineSvg.configuration.svg_not_found_css_class.nil?
16
+ return "<svg><!-- SVG file not found: '#{filename}' #{extension_hint(filename)}--></svg>".html_safe
17
+ else
18
+ return "<svg class='#{InlineSvg.configuration.svg_not_found_css_class}'><!-- SVG file not found: '#{filename}' #{extension_hint(filename)}--></svg>".html_safe
19
+ end
16
20
  end
17
21
 
18
22
  InlineSvg::TransformPipeline.generate_html_from(svg_file, transform_params).html_safe
@@ -1,34 +1,31 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class AriaAttributes < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- svg = doc.at_css("svg")
4
+ with_svg(doc) do |svg|
5
+ # Add role
6
+ svg["role"] = "img"
6
7
 
7
- # Add role
8
- svg["role"] = "img"
8
+ # Build aria-labelledby string
9
+ aria_elements = []
10
+ svg.search("title").each do |element|
11
+ aria_elements << element["id"] = element_id_for("title", element)
12
+ end
9
13
 
10
- # Build aria-labelledby string
11
- aria_elements = []
12
- doc.search("svg title").each do |element|
13
- aria_elements << element['id'] = element_id_for("title", element)
14
- end
15
-
16
- doc.search("svg desc").each do |element|
17
- aria_elements << element['id'] = element_id_for("desc", element)
18
- end
14
+ svg.search("desc").each do |element|
15
+ aria_elements << element["id"] = element_id_for("desc", element)
16
+ end
19
17
 
20
- if aria_elements.any?
21
- svg["aria-labelledby"] = aria_elements.join(" ")
18
+ if aria_elements.any?
19
+ svg["aria-labelledby"] = aria_elements.join(" ")
20
+ end
22
21
  end
23
-
24
- doc
25
22
  end
26
23
 
27
24
  def element_id_for(base, element)
28
- if element['id'].nil?
25
+ if element["id"].nil?
29
26
  InlineSvg::IdGenerator.generate(base, element.text)
30
27
  else
31
- InlineSvg::IdGenerator.generate(element['id'], element.text)
28
+ InlineSvg::IdGenerator.generate(element["id"], element.text)
32
29
  end
33
30
  end
34
31
  end
@@ -1,12 +1,11 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class ClassAttribute < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- svg = doc.at_css "svg"
6
- classes = (svg["class"] || "").split(" ")
7
- classes << value
8
- svg["class"] = classes.join(" ")
9
- doc
4
+ with_svg(doc) do |svg|
5
+ classes = (svg["class"] || "").split(" ")
6
+ classes << value
7
+ svg["class"] = classes.join(" ")
8
+ end
10
9
  end
11
10
  end
12
11
  end
@@ -1,12 +1,11 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class DataAttributes < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- svg = doc.at_css 'svg'
6
- with_valid_hash_from(self.value).each_pair do |name, data|
7
- svg["data-#{dasherize(name)}"] = data
4
+ with_svg(doc) do |svg|
5
+ with_valid_hash_from(self.value).each_pair do |name, data|
6
+ svg["data-#{dasherize(name)}"] = data
7
+ end
8
8
  end
9
- doc
10
9
  end
11
10
 
12
11
  private
@@ -1,12 +1,13 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class Description < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- node = Nokogiri::XML::Node.new('desc', doc)
6
- node.content = value
7
- doc.search('svg desc').each { |node| node.remove }
8
- doc.at_css('svg').prepend_child(node)
9
- doc
4
+ with_svg(doc) do |svg|
5
+ node = Nokogiri::XML::Node.new("desc", doc)
6
+ node.content = value
7
+
8
+ svg.search("desc").each { |node| node.remove }
9
+ svg.prepend_child(node)
10
+ end
10
11
  end
11
12
  end
12
13
  end
@@ -1,10 +1,9 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class Height < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- svg = doc.at_css 'svg'
6
- svg['height'] = self.value
7
- doc
4
+ with_svg(doc) do |svg|
5
+ svg["height"] = self.value
6
+ end
8
7
  end
9
8
  end
10
9
  end
@@ -1,10 +1,9 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class IdAttribute < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- svg = doc.at_css 'svg'
6
- svg['id'] = self.value
7
- doc
4
+ with_svg(doc) do |svg|
5
+ svg["id"] = self.value
6
+ end
8
7
  end
9
8
  end
10
9
  end
@@ -2,11 +2,11 @@ module InlineSvg::TransformPipeline
2
2
  module Transformations
3
3
  class NoComment < Transformation
4
4
  def transform(doc)
5
- doc = Nokogiri::XML::Document.parse(doc.to_html)
6
- doc.xpath("//comment()").each do |comment|
7
- comment.remove
5
+ with_svg(doc) do |svg|
6
+ svg.xpath("//comment()").each do |comment|
7
+ comment.remove
8
+ end
8
9
  end
9
- doc
10
10
  end
11
11
  end
12
12
  end
@@ -1,10 +1,9 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class PreserveAspectRatio < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- svg = doc.at_css 'svg'
6
- svg['preserveAspectRatio'] = self.value
7
- doc
4
+ with_svg(doc) do |svg|
5
+ svg["preserveAspectRatio"] = self.value
6
+ end
8
7
  end
9
8
  end
10
9
  end
@@ -1,11 +1,10 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class Size < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- svg = doc.at_css 'svg'
6
- svg['width'] = width_of(self.value)
7
- svg['height'] = height_of(self.value)
8
- doc
4
+ with_svg(doc) do |svg|
5
+ svg["width"] = width_of(self.value)
6
+ svg["height"] = height_of(self.value)
7
+ end
9
8
  end
10
9
 
11
10
  def width_of(value)
@@ -1,12 +1,13 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class Title < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- node = Nokogiri::XML::Node.new('title', doc)
6
- node.content = value
7
- doc.search('svg title').each { |node| node.remove }
8
- doc.at_css('svg').prepend_child(node)
9
- doc
4
+ with_svg(doc) do |svg|
5
+ node = Nokogiri::XML::Node.new("title", doc)
6
+ node.content = value
7
+
8
+ svg.search("title").each { |node| node.remove }
9
+ svg.prepend_child(node)
10
+ end
10
11
  end
11
12
  end
12
13
  end
@@ -13,6 +13,17 @@ module InlineSvg::TransformPipeline::Transformations
13
13
  def transform(*)
14
14
  raise "#transform should be implemented by subclasses of Transformation"
15
15
  end
16
+
17
+ # Parses a document and yields the contained SVG nodeset to the given block
18
+ # if it exists.
19
+ #
20
+ # Returns a Nokogiri::XML::Document.
21
+ def with_svg(doc)
22
+ doc = Nokogiri::XML::Document.parse(doc.to_html)
23
+ svg = doc.at_css "svg"
24
+ yield svg if svg && block_given?
25
+ doc
26
+ end
16
27
  end
17
28
 
18
29
  class NullTransformation < Transformation
@@ -1,10 +1,9 @@
1
1
  module InlineSvg::TransformPipeline::Transformations
2
2
  class Width < Transformation
3
3
  def transform(doc)
4
- doc = Nokogiri::XML::Document.parse(doc.to_html)
5
- svg = doc.at_css 'svg'
6
- svg['width'] = self.value
7
- doc
4
+ with_svg(doc) do |svg|
5
+ svg["width"] = self.value
6
+ end
8
7
  end
9
8
  end
10
9
  end
@@ -1,3 +1,3 @@
1
1
  module InlineSvg
2
- VERSION = "1.2.1"
2
+ VERSION = "1.2.2"
3
3
  end
@@ -14,8 +14,12 @@ describe InlineSvg::ActionView::Helpers do
14
14
  let(:helper) { ( Class.new { include InlineSvg::ActionView::Helpers } ).new }
15
15
 
16
16
  describe "#inline_svg" do
17
-
17
+
18
18
  context "when passed the name of an SVG that does not exist" do
19
+ after(:each) do
20
+ InlineSvg.reset_configuration!
21
+ end
22
+
19
23
  it "returns an empty, html safe, SVG document as a placeholder" do
20
24
  allow(InlineSvg::AssetFile).to receive(:named).
21
25
  with('some-missing-file.svg').
@@ -34,6 +38,20 @@ describe InlineSvg::ActionView::Helpers do
34
38
  output = helper.inline_svg('missing-file-with-no-extension')
35
39
  expect(output).to eq "<svg><!-- SVG file not found: 'missing-file-with-no-extension' (Try adding .svg to your filename) --></svg>"
36
40
  end
41
+
42
+ it "allows the CSS class on the empty SVG document to be changed" do
43
+ InlineSvg.configure do |config|
44
+ config.svg_not_found_css_class = 'missing-svg'
45
+ end
46
+
47
+ allow(InlineSvg::AssetFile).to receive(:named).
48
+ with('some-other-missing-file.svg').
49
+ and_raise(InlineSvg::AssetFile::FileNotFound.new)
50
+
51
+ output = helper.inline_svg('some-other-missing-file.svg')
52
+ expect(output).to eq "<svg class='missing-svg'><!-- SVG file not found: 'some-other-missing-file.svg' --></svg>"
53
+ expect(output).to be_html_safe
54
+ end
37
55
  end
38
56
 
39
57
  context "when passed an existing SVG file" do
@@ -80,6 +80,16 @@ describe InlineSvg do
80
80
  end
81
81
  end
82
82
 
83
+ context "configuring the default svg-not-found class" do
84
+ it "sets the class name" do
85
+ InlineSvg.configure do |config|
86
+ config.svg_not_found_css_class = 'missing-svg'
87
+ end
88
+
89
+ expect(InlineSvg.configuration.svg_not_found_css_class).to eq 'missing-svg'
90
+ end
91
+ end
92
+
83
93
  context "configuring custom transformation" do
84
94
  it "allows a custom transformation to be added" do
85
95
  InlineSvg.configure do |config|
@@ -1,8 +1,8 @@
1
- require 'inline_svg/transform_pipeline'
1
+ require "inline_svg/transform_pipeline"
2
2
 
3
3
  describe InlineSvg::TransformPipeline::Transformations::AriaAttributes do
4
4
  it "adds a role attribute to the SVG document" do
5
- document = Nokogiri::XML::Document.parse('<svg>Some document</svg>')
5
+ document = Nokogiri::XML::Document.parse("<svg>Some document</svg>")
6
6
  transformation = InlineSvg::TransformPipeline::Transformations::AriaAttributes.create_with_value({})
7
7
 
8
8
  expect(transformation.transform(document).to_html).to eq(
@@ -12,7 +12,7 @@ describe InlineSvg::TransformPipeline::Transformations::AriaAttributes do
12
12
 
13
13
  context "aria-labelledby attribute" do
14
14
  it "adds 'title' when a title element is present" do
15
- document = Nokogiri::XML::Document.parse('<svg><title>Some title</title>Some document</svg>')
15
+ document = Nokogiri::XML::Document.parse("<svg><title>Some title</title>Some document</svg>")
16
16
  transformation = InlineSvg::TransformPipeline::Transformations::AriaAttributes.create_with_value(true)
17
17
 
18
18
  expect(InlineSvg::IdGenerator).to receive(:generate).with("title", "Some title").
@@ -24,7 +24,7 @@ describe InlineSvg::TransformPipeline::Transformations::AriaAttributes do
24
24
  end
25
25
 
26
26
  it "adds 'desc' when a description element is present" do
27
- document = Nokogiri::XML::Document.parse('<svg><desc>Some description</desc>Some document</svg>')
27
+ document = Nokogiri::XML::Document.parse("<svg><desc>Some description</desc>Some document</svg>")
28
28
  transformation = InlineSvg::TransformPipeline::Transformations::AriaAttributes.create_with_value(true)
29
29
 
30
30
  expect(InlineSvg::IdGenerator).to receive(:generate).with("desc", "Some description").
@@ -36,7 +36,7 @@ describe InlineSvg::TransformPipeline::Transformations::AriaAttributes do
36
36
  end
37
37
 
38
38
  it "adds both 'desc' and 'title' when title and description elements are present" do
39
- document = Nokogiri::XML::Document.parse('<svg><title>Some title</title><desc>Some description</desc>Some document</svg>')
39
+ document = Nokogiri::XML::Document.parse("<svg><title>Some title</title><desc>Some description</desc>Some document</svg>")
40
40
  transformation = InlineSvg::TransformPipeline::Transformations::AriaAttributes.create_with_value(true)
41
41
 
42
42
  expect(InlineSvg::IdGenerator).to receive(:generate).with("title", "Some title").
@@ -50,7 +50,7 @@ describe InlineSvg::TransformPipeline::Transformations::AriaAttributes do
50
50
  end
51
51
 
52
52
  it "uses existing IDs when they exist" do
53
- document = Nokogiri::XML::Document.parse('<svg><title id="my-title">Some title</title><desc id="my-desc">Some description</desc>Some document</svg>')
53
+ document = Nokogiri::XML::Document.parse("<svg><title id='my-title'>Some title</title><desc id='my-desc'>Some description</desc>Some document</svg>")
54
54
  transformation = InlineSvg::TransformPipeline::Transformations::AriaAttributes.create_with_value(true)
55
55
 
56
56
  expect(InlineSvg::IdGenerator).to receive(:generate).with("my-title", "Some title").
@@ -9,4 +9,13 @@ describe InlineSvg::TransformPipeline::Transformations::Height do
9
9
  "<svg height=\"5%\">Some document</svg>\n"
10
10
  )
11
11
  end
12
+
13
+ it "handles documents without SVG root elements" do
14
+ document = Nokogiri::XML::Document.parse("<foo>bar</foo><svg>Some document</svg>")
15
+ transformation = InlineSvg::TransformPipeline::Transformations::Height.create_with_value("5%")
16
+
17
+ expect(transformation.transform(document).to_html).to eq(
18
+ "<foo>bar</foo>\n"
19
+ )
20
+ end
12
21
  end
@@ -0,0 +1,39 @@
1
+ require 'inline_svg'
2
+ require 'inline_svg/transform_pipeline'
3
+
4
+ describe InlineSvg::TransformPipeline::Transformations::Transformation do
5
+ context "#with_svg" do
6
+ it "returns a Nokogiri::XML::Document representing the parsed document fragment" do
7
+ document = Nokogiri::XML::Document.parse("<svg>Some document</svg>")
8
+
9
+ transformation = InlineSvg::TransformPipeline::Transformations::Transformation.new(:irrelevant)
10
+ expect(transformation.with_svg(document).to_html).to eq(
11
+ "<svg>Some document</svg>\n"
12
+ )
13
+ end
14
+
15
+ it "yields to the block when the document contains an SVG element" do
16
+ document = Nokogiri::XML::Document.parse("<svg>Some document</svg>")
17
+ svg = document.at_css("svg")
18
+
19
+ transformation = InlineSvg::TransformPipeline::Transformations::Transformation.new(:irrelevant)
20
+
21
+ returned_document = nil
22
+ expect do |b|
23
+ returned_document = transformation.with_svg(document, &b)
24
+ end.to yield_control
25
+
26
+ expect(returned_document.to_s).to match(/<svg>Some document<\/svg>/)
27
+ end
28
+
29
+ it "does not yield if the document does not contain an SVG element at the root" do
30
+ document = Nokogiri::XML::Document.parse("<foo>bar</foo><svg>Some document</svg>")
31
+
32
+ transformation = InlineSvg::TransformPipeline::Transformations::Transformation.new(:irrelevant)
33
+
34
+ expect do |b|
35
+ transformation.with_svg(document, &b)
36
+ end.not_to yield_control
37
+ end
38
+ end
39
+ 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.2.1
4
+ version: 1.2.2
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-05-02 00:00:00.000000000 Z
11
+ date: 2017-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -170,6 +170,7 @@ files:
170
170
  - spec/transformation_pipeline/transformations/preserve_aspect_ratio_spec.rb
171
171
  - spec/transformation_pipeline/transformations/size_spec.rb
172
172
  - spec/transformation_pipeline/transformations/title_spec.rb
173
+ - spec/transformation_pipeline/transformations/transformation_spec.rb
173
174
  - spec/transformation_pipeline/transformations/width_spec.rb
174
175
  - spec/transformation_pipeline/transformations_spec.rb
175
176
  homepage: https://github.com/jamesmartin/inline_svg
@@ -192,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
193
  version: '0'
193
194
  requirements: []
194
195
  rubyforge_project:
195
- rubygems_version: 2.2.5
196
+ rubygems_version: 2.6.11
196
197
  signing_key:
197
198
  specification_version: 4
198
199
  summary: Embeds an SVG document, inline.
@@ -220,5 +221,6 @@ test_files:
220
221
  - spec/transformation_pipeline/transformations/preserve_aspect_ratio_spec.rb
221
222
  - spec/transformation_pipeline/transformations/size_spec.rb
222
223
  - spec/transformation_pipeline/transformations/title_spec.rb
224
+ - spec/transformation_pipeline/transformations/transformation_spec.rb
223
225
  - spec/transformation_pipeline/transformations/width_spec.rb
224
226
  - spec/transformation_pipeline/transformations_spec.rb