html-tag 1.1.0 → 1.2.0

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: 9ba38f960d59ed54a47b5d55bc646cab39b6e93c87808e93461d1608899ae256
4
+ data.tar.gz: ff09c472468abec600b5a4a59dd36949d126f6f98eb86928795e63c5bf0eb6cc
5
5
  SHA512:
6
- metadata.gz: 22a1470ec594bdeb3fdab6d80f42e281d1b074d97afd8a52f0f4c7fde28a89c1f4f6946bf416209d841d458b0b8a918ca852d9f01df77e1a3de15a5351e546cb
7
- data.tar.gz: f98f366e0aba2d17c760c7e433e55a7563deccc4d2803476b475cb53ed95fad2f6081d3d49f829a2b47345c7823c1049d61b647dadf4db14b39ac592f3b5cace
6
+ metadata.gz: 86f6b42c9a0166e266ef719a68c80dc67474a816c51e3ae15f17f870ba3c52429a13eb8623c40a926a9183ef6b970adb1fb99588a467553b24848555f281d037
7
+ data.tar.gz: 350e52e105ceafd9d0e737af1bac20b53c7b0305324dc4d070bb5d586b24b3cbaa446d5c3aa7833d49dc16b7e2dbf212cb2ae0af3cd81dbac25b815c1f913962
data/.version CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.0
@@ -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.send :include, HtmlTagBuilderHelper
14
-
15
- # Sinatra
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
- include HtmlTagBuilderHelper
19
- alias :tag :xtag
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
- include HtmlTagBuilderHelper
27
- alias :tag :xtag
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
- inline = new
44
- data = yield(inline, opts)
43
+ stack = new
44
+ data = yield(stack, opts)
45
45
 
46
46
  # if data is pushed to passed node, use that data
47
- data = inline.data if inline.data.first
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
- text = yield opts if block_given?
73
- text ||= '' unless ['input', 'img', 'meta', 'link', 'hr', 'br'].include?(node.to_s)
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.1.0
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: 2019-09-26 00:00:00.000000000 Z
11
+ date: 2020-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fast_blank