action_view-use 0.1.0 → 0.2.1

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: 9575e5d9ad7ea8c7ccd25acdff5f3d3d84169bc8e9c482a64c8e3fa9173f082f
4
+ data.tar.gz: 173d45f0e44dd0d4dfb3e032c99741c62b823fa18f9f9debbc1e082859f73ba7
5
5
  SHA512:
6
- metadata.gz: d7ecb297189a1c997bd66e4dcd3728642f9a2564fe104a9b1f7b46a0c5ff1f16fba83399dbbd7cdac8ac6c47bbbf3e69d1b3fb207abf47fd7f1227038182a765
7
- data.tar.gz: e2e208c33c5298b0339eb5be802a3be69630c3dde9f917605d52f9b5f06de58bd1e358f94a46d0f7ef7c21393da472727cbf270e216ff8556ddc17f4af579dc9
6
+ metadata.gz: 072e2d206ba6a4c63156ac1b000ec953b6805797847eed912408ef6faa676e09f7eab8e95a6069c4d6da537acfe2d9257aed5c9312478a9d22c34ec63fbabfc6
7
+ data.tar.gz: c1a6c51a28dac62b16a6c69ff5e0285537188b9c02a826df75f802b89c2ef8f5ce8223271b8e449031f16b0133ffdb38f33ad9383182ec0fae59c4284a2cc703
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,22 +3,22 @@
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
14
14
  end
15
15
 
16
16
  def all_used_symbols
17
- html = +"" << '<svg xmlns="http://www.w3.org/2000/svg">'
17
+ html = +"" << '<svg xmlns="http://www.w3.org/2000/svg" display="none">'
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.1"
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.1
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-20 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: