action_view-use 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cbf0c84f05ecc492d4c3ff00c898295d611f0091a8f7a6d2146e37b25b023320
4
- data.tar.gz: 64f1e49551636448ee9d226551248213d3a466683cf1206bd3c2bcb3c577a46e
3
+ metadata.gz: 1eed70721d9118c4a15efda2da3903275c5fe8f7fa78ba96fff62a9a4de5f53d
4
+ data.tar.gz: c801a1d411aaa984f7966e2aed3736be0136fdb1222fcf04bae426528ea39df7
5
5
  SHA512:
6
- metadata.gz: d7ecb297189a1c997bd66e4dcd3728642f9a2564fe104a9b1f7b46a0c5ff1f16fba83399dbbd7cdac8ac6c47bbbf3e69d1b3fb207abf47fd7f1227038182a765
7
- data.tar.gz: e2e208c33c5298b0339eb5be802a3be69630c3dde9f917605d52f9b5f06de58bd1e358f94a46d0f7ef7c21393da472727cbf270e216ff8556ddc17f4af579dc9
6
+ metadata.gz: 5b1eef64dd7abd8d24c0751ac611f7962139a8a39cac629013c4387a6b2e80d4a6f5107ca4421a53bdac2d818ce1e0f446bb47d2ba760b5fef5f3ff05034a01d
7
+ data.tar.gz: 17d61751c40ef3cd5dc609804ed503e6e24ed1defbdc55f7ea30d248d8a2aff5b67f7409e93990ff9060667b0b5bc1e31a198fb73ca0c2351323bc67f253d62c
data/README.md CHANGED
@@ -24,7 +24,7 @@ Add `all_used_symbols` to the end of the `<body>` in
24
24
  Create SVG symbols to use in your views:
25
25
 
26
26
  ```erb
27
- <%# app/views/symbols/logo.svg.erb %>
27
+ <%# app/views/symbols/logo.svg %>
28
28
  <svg>
29
29
  <!--- logo content -->
30
30
  </svg>
@@ -3,11 +3,11 @@
3
3
  module ActionView
4
4
  module Use
5
5
  module Helpers
6
- def use_symbol(name)
6
+ def use_symbol(name, escape: true, **opts)
7
7
  used_symbol_set << name
8
8
 
9
9
  <<~HTML.html_safe
10
- <svg xmlns="http://www.w3.org/2000/svg">
10
+ <svg xmlns="http://www.w3.org/2000/svg" #{tag_builder.tag_options(opts, escape)}>
11
11
  <use href="##{name}" />
12
12
  </svg>
13
13
  HTML
@@ -18,7 +18,7 @@ module ActionView
18
18
 
19
19
  used_symbol_set.each do |name|
20
20
  html << '<symbol id="' << name << '">'
21
- html << render(partial: +"symbols/" << name, formats: [:svg])
21
+ html << SymbolRenderer.new(lookup_context).render(self, name).body
22
22
  html << "</symbol>"
23
23
  end
24
24
 
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActionView
4
+ module Use
5
+ class SymbolRenderer < AbstractRenderer
6
+ def render(view, name)
7
+ template = find_template(name)
8
+
9
+ render_symbol_template(view, template)
10
+ end
11
+
12
+ private
13
+ EMPTY_LOCALS = {}.freeze
14
+ DETAILS = { formats: [:svg] }.freeze
15
+
16
+ def render_symbol_template(view, template)
17
+ content = template.render(view, EMPTY_LOCALS, add_to_stack: true) do |*name|
18
+ view._layout_for(*name)
19
+ end
20
+
21
+ build_rendered_template(content, template)
22
+ end
23
+
24
+ def find_template(path)
25
+ @lookup_context.find_template(path, ActionView::Use.prefixes, false, EMPTY_LOCALS, DETAILS)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActionView
4
4
  module Use
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
@@ -3,9 +3,12 @@
3
3
  require "action_view"
4
4
  require_relative "use/version"
5
5
  require_relative "use/helpers"
6
+ require_relative "use/symbol_renderer"
6
7
 
7
8
  module ActionView
8
9
  module Use
10
+ singleton_class.attr_accessor :prefixes
11
+ self.prefixes = ["symbols"]
9
12
  end
10
13
  end
11
14
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_view-use
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hartley McGuire
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-13 00:00:00.000000000 Z
11
+ date: 2023-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -38,6 +38,7 @@ files:
38
38
  - Rakefile
39
39
  - lib/action_view/use.rb
40
40
  - lib/action_view/use/helpers.rb
41
+ - lib/action_view/use/symbol_renderer.rb
41
42
  - lib/action_view/use/version.rb
42
43
  homepage: https://github.com/skipkayhil/action_view-use
43
44
  licenses: