inline_svg 0.6.1 → 0.6.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: b073abae9747da39a851cf848bb44a758601194b
4
- data.tar.gz: 88e5783ea3586451675e40cec3086ed447c7c167
3
+ metadata.gz: d53e3e703f3681894bee4523d13869a70d9d8d85
4
+ data.tar.gz: 114b05c6779d93d8f8a8cd2f19b6c19f8e32dc2b
5
5
  SHA512:
6
- metadata.gz: a31ca28cfbbc4ef367bb63b74fb2c72be55ae31c4fe0e68d61b723be83e8ba6137ee387ad7453c21d624bba9e4460567820a7b5bbacffe7a67ac77052bb9a3ee
7
- data.tar.gz: 99b1f4e20d66372b8da7b3f486b56958a9b30db7f01a402557a1e6d92636ccfb41835fe86baf6e0627ad515f7508806bf8cf1ad43e991c768f5a33a65994dbe2
6
+ metadata.gz: a5f10abb1ebcff4ae18bda0f7600b14e0e8f2fb3123f100229e942fb63d8ea5cb6aaeb76a7f192dff2cbbfd1744370325c43e7a620000530d3b9877dad0a9fec
7
+ data.tar.gz: aa1a416596f428d0afd41e028f8e1ccd3003a3e292f08046d5d3166c2d32f3e5cf99c47799b6e209f0b979821a65e1ac9bd6c99c8c553a0bd559d518620e8dbf
data/CHANGELOG.md CHANGED
@@ -3,7 +3,7 @@ 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
+ - Support Sprockets >= 3.0 and config.assets.precompile = false
7
7
 
8
8
  ## [0.6.1] - 2015-08-06
9
9
  ### Fixed
data/README.md CHANGED
@@ -4,10 +4,13 @@ Styling a SVG document with CSS for use on the web is most reliably achieved by
4
4
  [adding classes to the document and
5
5
  embedding](http://css-tricks.com/using-svg/) it inline in the HTML.
6
6
 
7
- This gem is a little helper method (`inline_svg`) that reads an SVG document from a Rails
8
- image directory, applies a CSS class attribute to the root of the document and
7
+ This gem is a little 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
8
  then embeds it into a view.
10
9
 
10
+ Inline SVG supports [Rails version 4.0.4](http://weblog.rubyonrails.org/2014/3/14/Rails-4-0-4-has-been-released/) and newer.
11
+
12
+ Want to embed SVGs with Javascript? You might like [RemoteSvg](https://github.com/jamesmartin/remote-svg), which features similar transforms but can also load SVGs from remote URLs (like S3 etc.).
13
+
11
14
  ## Changelog
12
15
 
13
16
  All notable changes to this project are documented in the
@@ -40,7 +43,7 @@ and fingerprint your SVG files like any other Rails asset.
40
43
  Here's an example of embedding an SVG document and applying a 'class' attribute in
41
44
  HAML:
42
45
 
43
- ```
46
+ ```haml
44
47
  !!! 5
45
48
  %html
46
49
  %head
@@ -54,7 +57,7 @@ HAML:
54
57
  Here's some CSS to target the SVG, resize it and turn it an attractive shade of
55
58
  blue:
56
59
 
57
- ```
60
+ ```css
58
61
  .some-class {
59
62
  display: block;
60
63
  margin: 0 auto;
@@ -79,7 +82,7 @@ key | description
79
82
 
80
83
  Example:
81
84
 
82
- ```
85
+ ```ruby
83
86
  inline_svg("some-document.svg", id: 'some-id', class: 'some-class', data: {some: "value"}, size: '30% * 20%', title: 'Some Title', desc:
84
87
  'Some description', nocomment: true, preserve_aspect_ratio: 'xMaxYMax meet')
85
88
  ```
@@ -0,0 +1,27 @@
1
+ # Naive fallback asset finder for when sprockets >= 3.0 &&
2
+ # config.assets.precompile = false
3
+ # Thanks to @ryanswood for the original code:
4
+ # https://github.com/AbleHealth/inline_svg/commit/661bbb3bef7d1b4bd6ccd63f5f018305797b9509
5
+ module InlineSvg
6
+ class StaticAssetFinder
7
+ def self.find_asset(filename)
8
+ new(filename)
9
+ end
10
+
11
+ def initialize(filename)
12
+ @filename = filename
13
+ end
14
+
15
+ def pathname
16
+ if ::Rails.application.config.assets.compile
17
+ ::Rails.application.assets[@filename].pathname
18
+ else
19
+ manifest = ::Rails.application.assets_manifest
20
+ asset_path = manifest.assets[@filename]
21
+ unless asset_path.nil?
22
+ ::Rails.root.join(manifest.directory, asset_path)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,3 +1,3 @@
1
1
  module InlineSvg
2
- VERSION = "0.6.1"
2
+ VERSION = "0.6.2"
3
3
  end
data/lib/inline_svg.rb CHANGED
@@ -2,6 +2,7 @@ require "inline_svg/version"
2
2
  require "inline_svg/action_view/helpers"
3
3
  require "inline_svg/asset_file"
4
4
  require "inline_svg/finds_asset_paths"
5
+ require "inline_svg/static_asset_finder"
5
6
  require "inline_svg/transform_pipeline"
6
7
 
7
8
  require "inline_svg/railtie" if defined?(Rails)
@@ -22,7 +23,10 @@ module InlineSvg
22
23
  if finder.respond_to?(:find_asset)
23
24
  @asset_finder = finder
24
25
  else
25
- raise InlineSvg::Configuration::Invalid.new("Asset Finder should implement the #find_asset method")
26
+ # fallback to a naive static asset finder (sprokects >= 3.0 &&
27
+ # config.assets.precompile = false
28
+ # See: https://github.com/jamesmartin/inline_svg/issues/25
29
+ @asset_finder = InlineSvg::StaticAssetFinder
26
30
  end
27
31
  asset_finder
28
32
  end
@@ -1,3 +1,4 @@
1
+ require 'pathname'
1
2
  require_relative '../lib/inline_svg'
2
3
 
3
4
  describe InlineSvg::FindsAssetPaths do
@@ -33,12 +33,12 @@ describe InlineSvg do
33
33
  expect(InlineSvg.configuration.asset_finder).to eq sprockets
34
34
  end
35
35
 
36
- it "complains when the provided asset finder does not implement #find_asset" do
37
- expect do
38
- InlineSvg.configure do |config|
39
- config.asset_finder = 'Not a real asset finder'
40
- end
41
- end.to raise_error(InlineSvg::Configuration::Invalid, /asset finder.*find_asset/i)
36
+ it "falls back to StaticAssetFinder when the provided asset finder does not implement #find_asset" do
37
+ InlineSvg.configure do |config|
38
+ config.asset_finder = 'Not a real asset finder'
39
+ end
40
+
41
+ expect(InlineSvg.configuration.asset_finder).to eq InlineSvg::StaticAssetFinder
42
42
  end
43
43
  end
44
44
 
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: 0.6.1
4
+ version: 0.6.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: 2015-08-05 00:00:00.000000000 Z
11
+ date: 2016-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -113,6 +113,7 @@ files:
113
113
  - lib/inline_svg/asset_file.rb
114
114
  - lib/inline_svg/finds_asset_paths.rb
115
115
  - lib/inline_svg/railtie.rb
116
+ - lib/inline_svg/static_asset_finder.rb
116
117
  - lib/inline_svg/transform_pipeline.rb
117
118
  - lib/inline_svg/transform_pipeline/transformations.rb
118
119
  - lib/inline_svg/transform_pipeline/transformations/class_attribute.rb
@@ -159,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
160
  version: '0'
160
161
  requirements: []
161
162
  rubyforge_project:
162
- rubygems_version: 2.4.3
163
+ rubygems_version: 2.2.5
163
164
  signing_key:
164
165
  specification_version: 4
165
166
  summary: Embeds an SVG document, inline.