action_view-use 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: