html_tags 0.1.183

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.
Files changed (120) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +456 -0
  3. data/USAGE.md +17 -0
  4. data/doc/README.gen +256 -0
  5. data/html_tags.gemspec +48 -0
  6. data/images/logo_for_the_html_tags_project.png +0 -0
  7. data/lib/html_tags/array_registered_html_tags.rb +126 -0
  8. data/lib/html_tags/autoinclude.rb +2 -0
  9. data/lib/html_tags/autoinclude_base_module.rb +7 -0
  10. data/lib/html_tags/base/README.md +3 -0
  11. data/lib/html_tags/base/base.rb +11 -0
  12. data/lib/html_tags/base/base_module.rb +271 -0
  13. data/lib/html_tags/base/prototype.rb +19 -0
  14. data/lib/html_tags/checks.rb +58 -0
  15. data/lib/html_tags/closing_tag/closing_tag.rb +76 -0
  16. data/lib/html_tags/constants/array_strip_newlines.rb +14 -0
  17. data/lib/html_tags/constants/misc.rb +21 -0
  18. data/lib/html_tags/constants.rb +26 -0
  19. data/lib/html_tags/html_closing_tags.rb +36 -0
  20. data/lib/html_tags/html_comment.rb +29 -0
  21. data/lib/html_tags/html_tags.rb +118 -0
  22. data/lib/html_tags/html_tags_constants.rb +14 -0
  23. data/lib/html_tags/individual_tags/a.rb +646 -0
  24. data/lib/html_tags/individual_tags/abbr.rb +44 -0
  25. data/lib/html_tags/individual_tags/address.rb +50 -0
  26. data/lib/html_tags/individual_tags/area.rb +60 -0
  27. data/lib/html_tags/individual_tags/article.rb +48 -0
  28. data/lib/html_tags/individual_tags/aside.rb +80 -0
  29. data/lib/html_tags/individual_tags/audio.rb +54 -0
  30. data/lib/html_tags/individual_tags/b.rb +22 -0
  31. data/lib/html_tags/individual_tags/bdo.rb +50 -0
  32. data/lib/html_tags/individual_tags/blockquote.rb +19 -0
  33. data/lib/html_tags/individual_tags/body.rb +19 -0
  34. data/lib/html_tags/individual_tags/br.rb +28 -0
  35. data/lib/html_tags/individual_tags/button.rb +143 -0
  36. data/lib/html_tags/individual_tags/canvas.rb +19 -0
  37. data/lib/html_tags/individual_tags/caption.rb +107 -0
  38. data/lib/html_tags/individual_tags/cite.rb +78 -0
  39. data/lib/html_tags/individual_tags/code.rb +105 -0
  40. data/lib/html_tags/individual_tags/del.rb +112 -0
  41. data/lib/html_tags/individual_tags/details.rb +79 -0
  42. data/lib/html_tags/individual_tags/dialog.rb +108 -0
  43. data/lib/html_tags/individual_tags/div.rb +99 -0
  44. data/lib/html_tags/individual_tags/em.rb +99 -0
  45. data/lib/html_tags/individual_tags/fieldset.rb +88 -0
  46. data/lib/html_tags/individual_tags/figure.rb +42 -0
  47. data/lib/html_tags/individual_tags/footer.rb +61 -0
  48. data/lib/html_tags/individual_tags/form.rb +93 -0
  49. data/lib/html_tags/individual_tags/h1.rb +48 -0
  50. data/lib/html_tags/individual_tags/h2.rb +46 -0
  51. data/lib/html_tags/individual_tags/h3.rb +78 -0
  52. data/lib/html_tags/individual_tags/h4.rb +36 -0
  53. data/lib/html_tags/individual_tags/h5.rb +36 -0
  54. data/lib/html_tags/individual_tags/h6.rb +40 -0
  55. data/lib/html_tags/individual_tags/head.rb +47 -0
  56. data/lib/html_tags/individual_tags/header.rb +54 -0
  57. data/lib/html_tags/individual_tags/hgroup.rb +78 -0
  58. data/lib/html_tags/individual_tags/html.rb +61 -0
  59. data/lib/html_tags/individual_tags/i.rb +47 -0
  60. data/lib/html_tags/individual_tags/iframe.rb +131 -0
  61. data/lib/html_tags/individual_tags/img.rb +135 -0
  62. data/lib/html_tags/individual_tags/input.rb +96 -0
  63. data/lib/html_tags/individual_tags/ins.rb +102 -0
  64. data/lib/html_tags/individual_tags/kbd.rb +109 -0
  65. data/lib/html_tags/individual_tags/keygen.rb +90 -0
  66. data/lib/html_tags/individual_tags/label.rb +77 -0
  67. data/lib/html_tags/individual_tags/legend.rb +48 -0
  68. data/lib/html_tags/individual_tags/li.rb +74 -0
  69. data/lib/html_tags/individual_tags/link.rb +58 -0
  70. data/lib/html_tags/individual_tags/main.rb +29 -0
  71. data/lib/html_tags/individual_tags/map.rb +95 -0
  72. data/lib/html_tags/individual_tags/mark.rb +78 -0
  73. data/lib/html_tags/individual_tags/menu.rb +79 -0
  74. data/lib/html_tags/individual_tags/nav.rb +64 -0
  75. data/lib/html_tags/individual_tags/object.rb +76 -0
  76. data/lib/html_tags/individual_tags/ol.rb +50 -0
  77. data/lib/html_tags/individual_tags/p.rb +92 -0
  78. data/lib/html_tags/individual_tags/pre.rb +16 -0
  79. data/lib/html_tags/individual_tags/progress.rb +114 -0
  80. data/lib/html_tags/individual_tags/script.rb +22 -0
  81. data/lib/html_tags/individual_tags/source.rb +42 -0
  82. data/lib/html_tags/individual_tags/span.rb +95 -0
  83. data/lib/html_tags/individual_tags/strong.rb +17 -0
  84. data/lib/html_tags/individual_tags/style.rb +29 -0
  85. data/lib/html_tags/individual_tags/summary.rb +77 -0
  86. data/lib/html_tags/individual_tags/sup.rb +57 -0
  87. data/lib/html_tags/individual_tags/table.rb +90 -0
  88. data/lib/html_tags/individual_tags/tbody.rb +19 -0
  89. data/lib/html_tags/individual_tags/td.rb +30 -0
  90. data/lib/html_tags/individual_tags/textarea.rb +72 -0
  91. data/lib/html_tags/individual_tags/th.rb +50 -0
  92. data/lib/html_tags/individual_tags/thead.rb +53 -0
  93. data/lib/html_tags/individual_tags/time.rb +50 -0
  94. data/lib/html_tags/individual_tags/title.rb +59 -0
  95. data/lib/html_tags/individual_tags/tr.rb +50 -0
  96. data/lib/html_tags/individual_tags/track.rb +59 -0
  97. data/lib/html_tags/individual_tags/u.rb +47 -0
  98. data/lib/html_tags/individual_tags/ul.rb +23 -0
  99. data/lib/html_tags/individual_tags/var.rb +46 -0
  100. data/lib/html_tags/individual_tags/video.rb +70 -0
  101. data/lib/html_tags/module.rb +5 -0
  102. data/lib/html_tags/opening_tag/opening_tag.rb +288 -0
  103. data/lib/html_tags/project/project_base_directory.rb +23 -0
  104. data/lib/html_tags/requires/require_the_html_tags_project.rb +9 -0
  105. data/lib/html_tags/requires/require_the_img_tag.rb +7 -0
  106. data/lib/html_tags/shared.rb +23 -0
  107. data/lib/html_tags/stag.rb +54 -0
  108. data/lib/html_tags/toplevel_methods/add.rb +22 -0
  109. data/lib/html_tags/toplevel_methods/full_output.rb +33 -0
  110. data/lib/html_tags/toplevel_methods/newline_or_empty.rb +21 -0
  111. data/lib/html_tags/toplevel_methods/strip_newlines.rb +27 -0
  112. data/lib/html_tags/version/version.rb +17 -0
  113. data/lib/html_tags/yaml/available_html_tags.yml +135 -0
  114. data/lib/html_tags/yaml/valid_tags_in_a_head_tag.yml +16 -0
  115. data/lib/html_tags.rb +5 -0
  116. data/test/testing_html_tags.rb +158 -0
  117. data/test/testing_the_a_tag.rb +162 -0
  118. data/test/testing_the_button_tag.rb +37 -0
  119. data/test/testing_the_details_tag.rb +38 -0
  120. metadata +171 -0
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'html_tags/individual_tags/mark.rb'
6
+ # =========================================================================== #
7
+ module HtmlTags
8
+
9
+ require 'html_tags/opening_tag/opening_tag.rb'
10
+ require 'html_tags/toplevel_methods/add.rb'
11
+
12
+ # ========================================================================= #
13
+ # === HtmlTags.mark
14
+ # ========================================================================= #
15
+ def self.mark(
16
+ i = '',
17
+ css_class = '',
18
+ the_id = '',
19
+ css_style = '',
20
+ optional_javascript = '',
21
+ &block
22
+ )
23
+ # ======================================================================= #
24
+ # === Handle Hashes first
25
+ # ======================================================================= #
26
+ if css_class.is_a? Hash
27
+ # ===================================================================== #
28
+ # === :css_style
29
+ # ===================================================================== #
30
+ if css_class.has_key? :css_style
31
+ css_style = css_class.delete(:css_style)
32
+ if css_class.is_a?(Hash) and css_class.empty?
33
+ css_class = ''
34
+ end
35
+ end
36
+ end
37
+ content = i.to_s.dup
38
+ if block_given?
39
+ content << yield.to_s
40
+ end
41
+ # ======================================================================= #
42
+ # Looks better with a newline, in my opinion:
43
+ # ======================================================================= #
44
+ content << "\n" unless content.end_with? "\n"
45
+ return HtmlTags.add(
46
+ opening_tag(__method__, css_class, the_id, css_style, optional_javascript)+
47
+ content+
48
+ close(__method__)
49
+ )
50
+ end
51
+
52
+ # ========================================================================= #
53
+ # === mark
54
+ # ========================================================================= #
55
+ def mark(
56
+ i = '',
57
+ css_class = '',
58
+ the_id = '',
59
+ css_style = '',
60
+ optional_javascript = '',
61
+ &block
62
+ )
63
+ return HtmlTags.mark(
64
+ i,
65
+ css_class,
66
+ the_id,
67
+ css_style,
68
+ javascript_code,
69
+ &block
70
+ )
71
+ end
72
+
73
+ end
74
+
75
+ if __FILE__ == $PROGRAM_NAME
76
+ alias e puts
77
+ e HtmlTags.mark('The Scream')
78
+ end
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # See:
6
+ #
7
+ # https://www.w3schools.com/tags/tag_menu.asp
8
+ #
9
+ # =========================================================================== #
10
+ module HtmlTags
11
+
12
+ require 'html_tags/opening_tag/opening_tag.rb'
13
+ require 'html_tags/toplevel_methods/add.rb'
14
+
15
+ # ========================================================================= #
16
+ # === HtmlTags.menu (menu tag)
17
+ #
18
+ # The <menu> tag defines an unordered list of content.
19
+ # ========================================================================= #
20
+ def self.menu(
21
+ i = '', # <- This is the content.
22
+ css_class = '',
23
+ the_id = '',
24
+ css_style = '',
25
+ optional_javascript = '',
26
+ &block
27
+ )
28
+ if i.is_a? Hash
29
+ # === :css_class
30
+ if i.has_key? :css_class
31
+ css_class = i.delete(:css_class)
32
+ end
33
+ i = ''
34
+ end
35
+ i = i.to_s.dup # And avoid frozen-errors.
36
+ # ======================================================================= #
37
+ # Blocks will be assumed to be used for the first argument, `i`.
38
+ # ======================================================================= #
39
+ if block_given?
40
+ i << yield.to_s
41
+ end
42
+ return HtmlTags.add(
43
+ opening_tag(__method__, css_class, the_id, css_style, optional_javascript)+
44
+ "\n"+
45
+ i+
46
+ "\n\n"+
47
+ close(__method__)
48
+ )
49
+ end
50
+
51
+ # ========================================================================= #
52
+ # === menu
53
+ # ========================================================================= #
54
+ def menu(
55
+ i = '',
56
+ css_class = '',
57
+ the_id = '',
58
+ css_style = '',
59
+ optional_javascript = '',
60
+ &block
61
+ )
62
+ return HtmlTags.menu(
63
+ i,
64
+ css_class,
65
+ the_id,
66
+ css_style,
67
+ optional_javascript,
68
+ &block
69
+ )
70
+ end
71
+
72
+ end
73
+
74
+ if __FILE__ == $PROGRAM_NAME
75
+ alias e puts
76
+ e HtmlTags.menu('<li>Coffee</li>
77
+ <li>Tea</li>
78
+ <li>Milk</li>')
79
+ end
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # See also:
6
+ #
7
+ # https://www.tutorialrepublic.com/html-reference/html5-nav-tag.php
8
+ #
9
+ # =========================================================================== #
10
+ # require 'html_tags/individual_tags/nav.rb'
11
+ # =========================================================================== #
12
+ module HtmlTags
13
+
14
+ require 'html_tags/opening_tag/opening_tag.rb'
15
+ require 'html_tags/toplevel_methods/add.rb'
16
+
17
+ # ========================================================================= #
18
+ # === HtmlTags.nav
19
+ # ========================================================================= #
20
+ def self.nav(
21
+ i = '',
22
+ css_class = '',
23
+ the_id = '',
24
+ css_style = '',
25
+ &block
26
+ )
27
+ return HtmlTags.add(
28
+ opening_tag(__method__, css_class, the_id, css_style)+
29
+ "#{i}\n"+
30
+ close(__method__)
31
+ )
32
+ end
33
+
34
+ # ========================================================================= #
35
+ # === nav
36
+ # ========================================================================= #
37
+ def nav(
38
+ i = '',
39
+ css_class = '',
40
+ the_id = '',
41
+ css_style = '',
42
+ &block
43
+ )
44
+ return HtmlTags.nav(
45
+ i,
46
+ css_class,
47
+ the_id,
48
+ css_style,
49
+ &block
50
+ )
51
+ end
52
+
53
+ end
54
+
55
+ if __FILE__ == $PROGRAM_NAME
56
+ alias e puts
57
+ e HtmlTags.nav(
58
+ ' <ul>
59
+ <li><a href="#">Home</a></li>
60
+ <li><a href="#">About</a></li>
61
+ <li><a href="#">Contact</a></li>
62
+ </ul>'
63
+ )
64
+ end
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module HtmlTags
6
+
7
+ require 'html_tags/opening_tag/opening_tag.rb'
8
+ require 'html_tags/toplevel_methods/add.rb'
9
+
10
+ # ========================================================================= #
11
+ # === HtmlTags.object
12
+ # ========================================================================= #
13
+ def self.object(
14
+ i = '',
15
+ css_class = '',
16
+ the_id = '',
17
+ css_style = '',
18
+ &block
19
+ )
20
+ start = opening_tag(__method__, css_class, the_id, css_style).dup
21
+ # ======================================================================= #
22
+ # === Handle blocks next
23
+ # ======================================================================= #
24
+ if block_given?
25
+ yielded = yield
26
+ # ===================================================================== #
27
+ # === Handle Hashes next
28
+ # ===================================================================== #
29
+ if yielded.is_a? Hash
30
+ if yielded.has_key? :data
31
+ start[-2,0] = ' data="'+yielded.delete(:data)+'"'
32
+ end
33
+ if yielded.has_key? :width
34
+ start[-2,0] = ' width="'+yielded.delete(:width).to_s+'"'
35
+ end
36
+ if yielded.has_key? :height
37
+ start[-2,0] = ' height="'+yielded.delete(:height).to_s+'"'
38
+ end
39
+ end
40
+ end
41
+ return HtmlTags.add(
42
+ start+
43
+ i.to_s+
44
+ close(__method__)
45
+ )
46
+ end
47
+
48
+ # ========================================================================= #
49
+ # === object
50
+ # ========================================================================= #
51
+ def object(
52
+ i = '',
53
+ css_class = '',
54
+ the_id = '',
55
+ css_style = '',
56
+ &block
57
+ )
58
+ return HtmlTags.object(
59
+ i,
60
+ css_class,
61
+ the_id,
62
+ css_style,
63
+ &block
64
+ )
65
+ end
66
+
67
+ end
68
+
69
+ if __FILE__ == $PROGRAM_NAME
70
+ alias e puts
71
+ e HtmlTags.object('') {{
72
+ data: 'foobar.png',
73
+ width: 300,
74
+ height: 100
75
+ }}
76
+ end
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module HtmlTags
6
+
7
+ # ========================================================================= #
8
+ # === ol (ol tag)
9
+ #
10
+ # This is essentially a HTML representation for the <ol> tag.
11
+ #
12
+ # The <ol> tag defines an ordered list. An ordered list can be
13
+ # either numerical or it can be alphabetical.
14
+ #
15
+ # The <li> tag can be used to define list items.
16
+ #
17
+ # Documentation for the <ol> tag can be seen here:
18
+ #
19
+ # https://www.w3schools.com/tags/tag_ol.asp
20
+ #
21
+ # ========================================================================= #
22
+ def ol(
23
+ i = '', # <- This is the content.
24
+ css_class = '',
25
+ the_id = '',
26
+ css_style = '',
27
+ optional_javascript = '',
28
+ &block
29
+ )
30
+ if i.is_a? Hash
31
+ if i.has_key? :css_class
32
+ css_class = i.delete(:css_class)
33
+ end
34
+ i = ''
35
+ end
36
+ i = i.to_s.dup # And avoid frozen-errors.
37
+ # ======================================================================= #
38
+ # Blocks will be assumed to be used for the first argument, `i`.
39
+ # ======================================================================= #
40
+ if block_given?
41
+ i << yield.to_s
42
+ end
43
+ return HtmlTags.add(
44
+ opening_tag(__method__, css_class, the_id, css_style, optional_javascript)+
45
+ i+
46
+ close(__method__)
47
+ )
48
+ end
49
+
50
+ end
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'html_tags/individual_tags/p.rb'
6
+ # =========================================================================== #
7
+ module HtmlTags
8
+
9
+ require 'html_tags/toplevel_methods/add.rb'
10
+ require 'html_tags/opening_tag/opening_tag.rb'
11
+
12
+ # ========================================================================= #
13
+ # === HtmlTags.p
14
+ #
15
+ # This method can be used to create the html <p> tag.
16
+ #
17
+ # A String will be returned by this method.
18
+ # ========================================================================= #
19
+ def self.p(
20
+ i = '',
21
+ css_class = '',
22
+ the_id = '',
23
+ css_style = '',
24
+ &block
25
+ )
26
+ use_a_trailing_newline = false
27
+ if i.is_a? Hash
28
+ # ===================================================================== #
29
+ # === Handle entries such as p(css_style: 'padding:2em')
30
+ # ===================================================================== #
31
+ if i.has_key? :css_style
32
+ css_style = i.delete(:css_style)
33
+ i = '' if i.empty?
34
+ end
35
+ if i.is_a?(Hash) and i.has_key?(:css_class)
36
+ css_class = i.delete(:css_class)
37
+ i = '' if i.empty?
38
+ end
39
+ end
40
+ result = opening_tag(__method__, css_class, the_id, css_style).dup
41
+ # ======================================================================= #
42
+ # === Handle blocks given to this method next.
43
+ #
44
+ # Symbols will be treated differently.
45
+ # ======================================================================= #
46
+ if block_given?
47
+ yielded = yield
48
+ if yielded.is_a? Symbol
49
+ case yielded
50
+ # =================================================================== #
51
+ # === :newline
52
+ # =================================================================== #
53
+ when :newline
54
+ use_a_trailing_newline = true
55
+ end
56
+ else
57
+ result << yielded.to_s
58
+ end
59
+ end
60
+ result << i.to_s+close(__method__).to_s
61
+ if use_a_trailing_newline
62
+ result << "\n"
63
+ end
64
+ return HtmlTags.add(result)
65
+ end
66
+
67
+ # ========================================================================= #
68
+ # === p
69
+ # ========================================================================= #
70
+ def p(
71
+ i = '',
72
+ css_class = '',
73
+ the_id = '',
74
+ css_style = '',
75
+ &block
76
+ )
77
+ HtmlTags.p(
78
+ i,
79
+ css_class,
80
+ the_id,
81
+ css_style,
82
+ &block
83
+ )
84
+ end
85
+
86
+ end
87
+
88
+ if __FILE__ == $PROGRAM_NAME
89
+ alias e puts
90
+ e HtmlTags.p('This is a test.','mars3em')
91
+ e HtmlTags.p(css_class: 'mars3em').text('This is a test.')
92
+ end
@@ -0,0 +1,16 @@
1
+ module HtmlTags
2
+
3
+ # ========================================================================= #
4
+ # === pre
5
+ # ========================================================================= #
6
+ def pre(
7
+ i = '', css_class = '', the_id = '', css_style = ''
8
+ )
9
+ return HtmlTags.add(
10
+ opening_tag(__method__, css_class, the_id, css_style)+
11
+ i.to_s+
12
+ close(__method__)
13
+ )
14
+ end
15
+
16
+ end
@@ -0,0 +1,114 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # See:
6
+ #
7
+ # https://www.w3schools.com/tags/tag_progress.asp
8
+ #
9
+ # =========================================================================== #
10
+ module HtmlTags
11
+
12
+ require 'html_tags/opening_tag/opening_tag.rb'
13
+ require 'html_tags/toplevel_methods/add.rb'
14
+
15
+ # ========================================================================= #
16
+ # === HtmlTags.progress
17
+ # ========================================================================= #
18
+ def self.progress(
19
+ i = '',
20
+ css_class = '',
21
+ the_id = '',
22
+ css_style = '',
23
+ optional_javascript = '',
24
+ &block
25
+ )
26
+ # ======================================================================= #
27
+ # === Handle Hashes first
28
+ # ======================================================================= #
29
+ if css_class.is_a? Hash
30
+ # ===================================================================== #
31
+ # === :css_style
32
+ # ===================================================================== #
33
+ if css_class.has_key? :css_style
34
+ css_style = css_class.delete(:css_style)
35
+ if css_class.is_a?(Hash) and css_class.empty?
36
+ css_class = ''
37
+ end
38
+ end
39
+ end
40
+ if i.is_a? Hash
41
+ # ===================================================================== #
42
+ # Next support elements such as:
43
+ # progress(css_class: 'default') {
44
+ # ===================================================================== #
45
+ if i.has_key? :css_class
46
+ css_class = i.delete(:css_class)
47
+ end
48
+ # ===================================================================== #
49
+ # === :id
50
+ # ===================================================================== #
51
+ if i.has_key? :id
52
+ the_id = i.delete(:id)
53
+ end
54
+ # ===================================================================== #
55
+ # === :css_style
56
+ # ===================================================================== #
57
+ if i.has_key? :css_style
58
+ css_style = i.delete(:css_style)
59
+ end
60
+ i = '' # For now, we remove this.
61
+ end
62
+ content = i.to_s.dup
63
+ unless content.end_with?('%')
64
+ if content =~ /\d+/
65
+ content << '%'
66
+ end
67
+ end
68
+ if block_given?
69
+ content << yield.to_s
70
+ end
71
+ # ======================================================================= #
72
+ # Looks better with a newline, in my opinion:
73
+ # ======================================================================= #
74
+ content << "\n" unless content.end_with? "\n"
75
+ return HtmlTags.add(
76
+ opening_tag(__method__, css_class, the_id, css_style, optional_javascript)+
77
+ content+
78
+ close(__method__)
79
+ )
80
+ end
81
+
82
+ # ========================================================================= #
83
+ # === progress
84
+ #
85
+ # This method will make a html <progress> tag.
86
+ #
87
+ # Invocation example:
88
+ #
89
+ # HtmlTags.progress(i = '', css_class = '', the_id = '', css_style = '')
90
+ #
91
+ # ========================================================================= #
92
+ def progress(
93
+ i = '',
94
+ css_class = '',
95
+ the_id = '',
96
+ css_style = '',
97
+ javascript = nil
98
+ )
99
+ return HtmlTags.progress(
100
+ i,
101
+ css_class,
102
+ the_id,
103
+ css_style,
104
+ javascript_code,
105
+ &block
106
+ )
107
+ end
108
+
109
+ end
110
+
111
+ if __FILE__ == $PROGRAM_NAME
112
+ alias e puts
113
+ e HtmlTags.progress(32)
114
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module HtmlTags
6
+
7
+ # ========================================================================= #
8
+ # === script
9
+ #
10
+ # This method will generate a <script></script> tag, for JavaScrtip.
11
+ # ========================================================================= #
12
+ def script(
13
+ i = ''
14
+ )
15
+ return HtmlTags.add(
16
+ opening_tag(__method__)+
17
+ i.to_s+
18
+ close(__method__)
19
+ )
20
+ end; alias javascript script # === HtmlTags.javascript
21
+
22
+ end
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module HtmlTags
6
+
7
+ require 'html_tags/opening_tag/opening_tag.rb'
8
+ require 'html_tags/toplevel_methods/add.rb'
9
+
10
+ # ========================================================================= #
11
+ # === source
12
+ #
13
+ # This method should yield a tag such as:
14
+ #
15
+ # <source src="horse.ogg" type="audio/ogg">
16
+ #
17
+ # ========================================================================= #
18
+ def source(
19
+ input_file = '',
20
+ type = nil,
21
+ css_class = '',
22
+ the_id = '',
23
+ css_style = ''
24
+ )
25
+ opening_tag = opening_tag(__method__, css_class, the_id, css_style).dup
26
+ if input_file and !input_file.empty?
27
+ opening_tag[-2,0] = ' src="'+input_file+'"'
28
+ end
29
+ if type and !type.empty?
30
+ opening_tag[-2,0] = ' type="'+type.to_s+'"'
31
+ end
32
+ return HtmlTags.add(opening_tag)
33
+ end
34
+
35
+ end
36
+
37
+ if __FILE__ == $PROGRAM_NAME
38
+ alias e puts
39
+ include HtmlTags
40
+ e source('foobar.mp4')
41
+ e source('foobar.mp4','audio/ogg')
42
+ end