html-tag 1.1.0 → 1.3.3

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: d7030cc9de11a7bd5172e81e687059c13b402c425b884b2712a0f75128ae21c0
4
- data.tar.gz: '085a7ec6e169b51bae3255471e0c98213fc29fbc9bed605995d1fc3ce1ff676c'
3
+ metadata.gz: 6e059a4d0fc919b9a8c8ea26b5909c24b5519acf7459314b15fb8d7b485f543b
4
+ data.tar.gz: 6a9386662a963454a5235376be4eec0f6170b21f393c069fd008f92fbdf89741
5
5
  SHA512:
6
- metadata.gz: 22a1470ec594bdeb3fdab6d80f42e281d1b074d97afd8a52f0f4c7fde28a89c1f4f6946bf416209d841d458b0b8a918ca852d9f01df77e1a3de15a5351e546cb
7
- data.tar.gz: f98f366e0aba2d17c760c7e433e55a7563deccc4d2803476b475cb53ed95fad2f6081d3d49f829a2b47345c7823c1049d61b647dadf4db14b39ac592f3b5cace
6
+ metadata.gz: b9d7af17a77ce73ca4c3488092b8772e008ee4b1d8848a0058f3ee969c7e3e24523aa6fc81fb8f9e7f903d4deaeafa0608bb7633894ea22af954e43886df72a8
7
+ data.tar.gz: b5e3893b3e76b8fc8744c7fb71a508d327d6f8fea98efd51c9b1b3893955d7c17e6c1260b019333b45c399edf125163040c1903e219d8312dccaa266abb80d4c
data/.version CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.3.3
@@ -1,33 +1,30 @@
1
- module HtmlTagBuilderHelper
2
- # tag :div, { 'class'=>'iform' } do
3
- # tag.div(class: :iform) { |n| ... }
4
- def xtag name=nil, opts={}, data=nil
5
- return HtmlTagBuilder unless name
6
- data = yield(opts) if block_given?
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
- # Rails
12
- if defined?(ActionView::Base)
13
- ActionView::Base.send :include, HtmlTagBuilderHelper
14
-
15
- # Sinatra
16
- elsif defined?(Sinatra::Base)
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
- inline = new
44
- data = yield(inline, opts)
46
+ stack = new
47
+ data = yield(stack, opts)
45
48
 
46
49
  # if data is pushed to passed node, use that data
47
- data = inline.data if inline.data.first
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
- text = yield opts if block_given?
73
- text ||= '' unless ['input', 'img', 'meta', 'link', 'hr', 'br'].include?(node.to_s)
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
- opts.push key.to_s.gsub(/_/,'-')+'="'+value.to_s.gsub(/"/,'&quot;')+'"'
89
+ key = key.to_s.gsub(/data_/,'data-')
90
+ opts.push key+'="'+value.to_s.gsub(/"/,'&quot;')+'"'
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.1.0
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: 2019-09-26 00:00:00.000000000 Z
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: []