html-tag 1.1.0 → 1.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 +4 -4
- data/.version +1 -1
- data/lib/html-tag/adapter.rb +28 -12
- data/lib/html-tag/base.rb +5 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ba38f960d59ed54a47b5d55bc646cab39b6e93c87808e93461d1608899ae256
|
4
|
+
data.tar.gz: ff09c472468abec600b5a4a59dd36949d126f6f98eb86928795e63c5bf0eb6cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86f6b42c9a0166e266ef719a68c80dc67474a816c51e3ae15f17f870ba3c52429a13eb8623c40a926a9183ef6b970adb1fb99588a467553b24848555f281d037
|
7
|
+
data.tar.gz: 350e52e105ceafd9d0e737af1bac20b53c7b0305324dc4d070bb5d586b24b3cbaa446d5c3aa7833d49dc16b7e2dbf212cb2ae0af3cd81dbac25b815c1f913962
|
data/.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
data/lib/html-tag/adapter.rb
CHANGED
@@ -8,26 +8,42 @@ module HtmlTagBuilderHelper
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
# Rails
|
11
|
+
# add to Rails, Sinatra or all other that respond to ApplicationHelper
|
12
12
|
if defined?(ActionView::Base)
|
13
|
-
ActionView::Base
|
14
|
-
|
15
|
-
|
13
|
+
class ActionView::Base
|
14
|
+
def tag *args, &block
|
15
|
+
args.first ? HtmlTagBuilder.tag(*args, &block) : HtmlTagBuilder
|
16
|
+
end
|
17
|
+
end
|
16
18
|
elsif defined?(Sinatra::Base)
|
17
19
|
class Sinatra::Base
|
18
|
-
|
19
|
-
|
20
|
+
def tag *args, &block
|
21
|
+
args.first ? HtmlTagBuilder.tag(*args, &block) : HtmlTagBuilder
|
22
|
+
end
|
20
23
|
end
|
21
|
-
|
22
|
-
# Lux and other
|
23
24
|
elsif defined?(ApplicationHelper)
|
24
|
-
# all other frameworks, including Lux
|
25
25
|
module ApplicationHelper
|
26
|
-
|
27
|
-
|
26
|
+
def tag *args, &block
|
27
|
+
args.first ? HtmlTagBuilder.tag(*args, &block) : HtmlTagBuilder
|
28
|
+
end
|
28
29
|
end
|
29
|
-
|
30
30
|
end
|
31
31
|
|
32
|
+
# Hash
|
33
|
+
unless {}.respond_to?(:tag)
|
34
|
+
class Hash
|
35
|
+
def tag node_name=nil, inner_html=nil
|
36
|
+
HtmlTagBuilder.build self, node_name, inner_html
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
32
40
|
|
41
|
+
# String
|
42
|
+
unless ''.respond_to?(:tag)
|
43
|
+
class String
|
44
|
+
def tag node_name, opts={}
|
45
|
+
HtmlTagBuilder.build opts, node_name, self
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
33
49
|
|
data/lib/html-tag/base.rb
CHANGED
@@ -40,11 +40,11 @@ class HtmlTagBuilder
|
|
40
40
|
data, opts = opts, {} unless opts.class == Hash
|
41
41
|
|
42
42
|
if block_given?
|
43
|
-
|
44
|
-
data
|
43
|
+
stack = new
|
44
|
+
data = yield(stack, opts)
|
45
45
|
|
46
46
|
# if data is pushed to passed node, use that data
|
47
|
-
data =
|
47
|
+
data = stack.data if stack.data.first
|
48
48
|
end
|
49
49
|
|
50
50
|
data = data.join('') if data.is_a?(Array)
|
@@ -69,8 +69,8 @@ class HtmlTagBuilder
|
|
69
69
|
|
70
70
|
return opts unless node
|
71
71
|
|
72
|
-
|
73
|
-
text ||= '' unless
|
72
|
+
empty_tags = ['input', 'img', 'meta', 'link', 'hr', 'br', 'col', 'frame', 'area']
|
73
|
+
text ||= '' unless empty_tags.include?(node.to_s)
|
74
74
|
out = text ? %{<#{node}#{opts}>#{text}</#{node}>} : %{<#{node}#{opts} />}
|
75
75
|
out.respond_to?(:html_safe) ? out.html_safe : out
|
76
76
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html-tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dino Reic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fast_blank
|