html-tag 1.0.0 → 1.3.2
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 +18 -27
- data/lib/html-tag/base.rb +15 -12
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b43ddb467f75e41732aa8b0e5bc12bbc29c03e383f84686d010b73ae233ada39
|
4
|
+
data.tar.gz: 1101fe71fd0db7dda7d1a6780fe055cc33c40a6a264882b34898d738189b87a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: baf58e6d0931f7cc1ef5778c69a4a2142eba85799f4f06ca95d690f1a69bd3021d356c2ebe9ed639be86d119c401b13b682fcd72483cd3cdf88d5392612ec443
|
7
|
+
data.tar.gz: 92973aeae92e95b45b8f82753cd86b6c2d7a4085e926a9df5d67d149b0680d3d7853eb3a02af4799051b7bf095d60e0907e85f378ea6621e12931f5be9b28cb6
|
data/.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.2
|
data/lib/html-tag/adapter.rb
CHANGED
@@ -1,33 +1,24 @@
|
|
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
|
|
32
|
-
|
33
|
-
|
19
|
+
# All other objects
|
20
|
+
class Object
|
21
|
+
def tag *args, &block
|
22
|
+
args.first ? HtmlTagBuilder.tag(*args, &block) : HtmlTagBuilder
|
23
|
+
end
|
24
|
+
end
|
data/lib/html-tag/base.rb
CHANGED
@@ -17,11 +17,11 @@ class HtmlTagBuilder
|
|
17
17
|
data = nil
|
18
18
|
end
|
19
19
|
|
20
|
-
# covert n.
|
20
|
+
# covert n._row_foo to n(class: 'row-foo')
|
21
21
|
name = name.to_s
|
22
22
|
if name.to_s[0, 1] == '_'
|
23
23
|
opts ||= {}
|
24
|
-
opts[:class] = name.to_s.sub('_', '')
|
24
|
+
opts[:class] = name.to_s.sub('_', '').gsub('_', '-')
|
25
25
|
name = :div
|
26
26
|
end
|
27
27
|
|
@@ -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
|
@@ -82,10 +82,11 @@ class HtmlTagBuilder
|
|
82
82
|
|
83
83
|
def __add_opts opts, key, value
|
84
84
|
unless value.to_s.blank?
|
85
|
-
|
85
|
+
value = value.join(' ') if value.is_a?(Array)
|
86
|
+
key = key.to_s.gsub(/data_/,'data-')
|
87
|
+
opts.push key+'="'+value.to_s.gsub(/"/,'"')+'"'
|
86
88
|
end
|
87
89
|
end
|
88
|
-
|
89
90
|
end
|
90
91
|
|
91
92
|
###
|
@@ -97,15 +98,17 @@ class HtmlTagBuilder
|
|
97
98
|
end
|
98
99
|
|
99
100
|
# push data to stack
|
100
|
-
def push data
|
101
|
-
@data.push data
|
101
|
+
def push data=nil
|
102
|
+
@data.push block_given? ? yield : data
|
102
103
|
end
|
103
104
|
|
104
|
-
# n.
|
105
|
+
# n.('foo') do -> n.div(class: 'foo') do
|
105
106
|
def call class_name, &block
|
106
107
|
@data.push self.class.tag(:div, { class: class_name }, &block)
|
107
108
|
end
|
108
109
|
|
110
|
+
private
|
111
|
+
|
109
112
|
# forward to class
|
110
113
|
def method_missing tag_name, *args, &block
|
111
114
|
@data.push self.class.tag(tag_name, args[0], args[1], &block)
|
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.2
|
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-12 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
|
@@ -54,8 +54,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
requirements: []
|
57
|
-
rubygems_version: 3.
|
58
|
-
signing_key:
|
57
|
+
rubygems_version: 3.1.2
|
58
|
+
signing_key:
|
59
59
|
specification_version: 4
|
60
60
|
summary: HTML tag builder
|
61
61
|
test_files: []
|