html-tag 1.1.0 → 1.3.3
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 +23 -26
- data/lib/html-tag/base.rb +12 -9
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e059a4d0fc919b9a8c8ea26b5909c24b5519acf7459314b15fb8d7b485f543b
|
4
|
+
data.tar.gz: 6a9386662a963454a5235376be4eec0f6170b21f393c069fd008f92fbdf89741
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9d7af17a77ce73ca4c3488092b8772e008ee4b1d8848a0058f3ee969c7e3e24523aa6fc81fb8f9e7f903d4deaeafa0608bb7633894ea22af954e43886df72a8
|
7
|
+
data.tar.gz: b5e3893b3e76b8fc8744c7fb71a508d327d6f8fea98efd51c9b1b3893955d7c17e6c1260b019333b45c399edf125163040c1903e219d8312dccaa266abb80d4c
|
data/.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.3
|
data/lib/html-tag/adapter.rb
CHANGED
@@ -1,33 +1,30 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
HtmlTagBuilder.tag name, opts, data
|
1
|
+
# Hash
|
2
|
+
unless {}.respond_to?(:tag)
|
3
|
+
class Hash
|
4
|
+
def tag node_name, inner_html=nil
|
5
|
+
HtmlTagBuilder.build self, node_name, inner_html
|
6
|
+
end
|
8
7
|
end
|
9
8
|
end
|
10
9
|
|
11
|
-
#
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
class Sinatra::Base
|
18
|
-
include HtmlTagBuilderHelper
|
19
|
-
alias :tag :xtag
|
20
|
-
end
|
21
|
-
|
22
|
-
# Lux and other
|
23
|
-
elsif defined?(ApplicationHelper)
|
24
|
-
# all other frameworks, including Lux
|
25
|
-
module ApplicationHelper
|
26
|
-
include HtmlTagBuilderHelper
|
27
|
-
alias :tag :xtag
|
10
|
+
# String
|
11
|
+
unless ''.respond_to?(:tag)
|
12
|
+
class String
|
13
|
+
def tag node_name, opts={}
|
14
|
+
HtmlTagBuilder.build opts, node_name, self
|
15
|
+
end
|
28
16
|
end
|
29
|
-
|
30
17
|
end
|
31
18
|
|
19
|
+
# All other objects
|
20
|
+
class Object
|
21
|
+
def tag
|
22
|
+
HtmlTagBuilder
|
23
|
+
end
|
32
24
|
|
33
|
-
|
25
|
+
# Rails has tag methd defeined in views, in ActionView::Helpers::TagHelper
|
26
|
+
# Access HtmlTagBuilder via xtag then
|
27
|
+
def xtag
|
28
|
+
HtmlTagBuilder
|
29
|
+
end
|
30
|
+
end
|
data/lib/html-tag/base.rb
CHANGED
@@ -17,6 +17,9 @@ class HtmlTagBuilder
|
|
17
17
|
data = nil
|
18
18
|
end
|
19
19
|
|
20
|
+
# tag.div(:a) { 1 } -> <div class="a">1</div>
|
21
|
+
opts = opts.to_s if opts.class == Symbol
|
22
|
+
|
20
23
|
# covert n._row_foo to n(class: 'row-foo')
|
21
24
|
name = name.to_s
|
22
25
|
if name.to_s[0, 1] == '_'
|
@@ -40,11 +43,11 @@ class HtmlTagBuilder
|
|
40
43
|
data, opts = opts, {} unless opts.class == Hash
|
41
44
|
|
42
45
|
if block_given?
|
43
|
-
|
44
|
-
data
|
46
|
+
stack = new
|
47
|
+
data = yield(stack, opts)
|
45
48
|
|
46
49
|
# if data is pushed to passed node, use that data
|
47
|
-
data =
|
50
|
+
data = stack.data if stack.data.first
|
48
51
|
end
|
49
52
|
|
50
53
|
data = data.join('') if data.is_a?(Array)
|
@@ -69,8 +72,8 @@ class HtmlTagBuilder
|
|
69
72
|
|
70
73
|
return opts unless node
|
71
74
|
|
72
|
-
|
73
|
-
text ||= '' unless
|
75
|
+
empty_tags = ['input', 'img', 'meta', 'link', 'hr', 'br', 'col', 'frame', 'area']
|
76
|
+
text ||= '' unless empty_tags.include?(node.to_s)
|
74
77
|
out = text ? %{<#{node}#{opts}>#{text}</#{node}>} : %{<#{node}#{opts} />}
|
75
78
|
out.respond_to?(:html_safe) ? out.html_safe : out
|
76
79
|
end
|
@@ -83,10 +86,10 @@ class HtmlTagBuilder
|
|
83
86
|
def __add_opts opts, key, value
|
84
87
|
unless value.to_s.blank?
|
85
88
|
value = value.join(' ') if value.is_a?(Array)
|
86
|
-
|
89
|
+
key = key.to_s.gsub(/data_/,'data-')
|
90
|
+
opts.push key+'="'+value.to_s.gsub(/"/,'"')+'"'
|
87
91
|
end
|
88
92
|
end
|
89
|
-
|
90
93
|
end
|
91
94
|
|
92
95
|
###
|
@@ -98,8 +101,8 @@ class HtmlTagBuilder
|
|
98
101
|
end
|
99
102
|
|
100
103
|
# push data to stack
|
101
|
-
def push data
|
102
|
-
@data.push data
|
104
|
+
def push data=nil
|
105
|
+
@data.push block_given? ? yield : data
|
103
106
|
end
|
104
107
|
|
105
108
|
# n.('foo') do -> n.div(class: 'foo') do
|
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.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dino Reic
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fast_blank
|
@@ -39,7 +39,7 @@ homepage: https://github.com/dux/html-tag
|
|
39
39
|
licenses:
|
40
40
|
- MIT
|
41
41
|
metadata: {}
|
42
|
-
post_install_message:
|
42
|
+
post_install_message:
|
43
43
|
rdoc_options: []
|
44
44
|
require_paths:
|
45
45
|
- lib
|
@@ -55,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
55
|
version: '0'
|
56
56
|
requirements: []
|
57
57
|
rubygems_version: 3.0.6
|
58
|
-
signing_key:
|
58
|
+
signing_key:
|
59
59
|
specification_version: 4
|
60
60
|
summary: HTML tag builder
|
61
61
|
test_files: []
|