pagebuilder 0.1.0 → 0.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
  SHA1:
3
- metadata.gz: 20c3e9b1f9ee062b88333481c0b3ae229f74c2ef
4
- data.tar.gz: bf084d67ff8d49de5670df8c251f5c14d668f307
3
+ metadata.gz: 51d84eaa6a8c99b58ffa772ef728558664807621
4
+ data.tar.gz: 9a8a4132818392034585b56d92df9df08b4792b1
5
5
  SHA512:
6
- metadata.gz: 266e3a19041f3aa0b65d680d9066853339dbde525bc776371c4126e6222a50afe589df3469b620cc02bc5955b4aca6ed15bed03a5acacd123cba6c24f7f3dd01
7
- data.tar.gz: 7a2f224579aab8e416e5f845be8cfb064fff14186bf979daa8d74dc4448b9a9260b6763996c35d4d6f0b7f60ed5eadf5b9bc372d56917d7f65b1aafd23a0be81
6
+ metadata.gz: 4b83526debea27688251aa6979a007051482be1b4db77e12ba6ae189372fe584b5495fc2cc1079ba716e3ddc9bee4504871ee9f8467706241805259ca047f60b
7
+ data.tar.gz: 28d3214fd7cc49fb355322cd62e452c70d6b479398fbe4f8296685007d17037f70731b5fe79ddcae0754cb5bb554dbb47430d50685ad40bad11e80c090d61835
data/CHANGELOG.md ADDED
@@ -0,0 +1,14 @@
1
+ ## v0.2.0
2
+ ### Added
3
+ * :>> as an alias of Node#append_child to allow for cleaner nesting
4
+ * helpers for setting the base uri for a document
5
+ * helpers to the document for managing a list of javascript files to be
6
+ output at the end of the body
7
+ ### Changed
8
+ * Removed the `content` argument from tag helpers for tags that shouldn't have text content
9
+ * Added better documentation of the available tags
10
+ ### Removed
11
+ * #menu_item since the tag is essentially dead
12
+
13
+ ## v0.1.0
14
+ Initial release
data/README.md CHANGED
@@ -20,7 +20,9 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- Include `PageBuilder::Tags` in the class where you want to build out pages. It will add helper methods for most HTML 5 tags. As an example, you can then call `a 'click here', href: 'http://www.example.com'` to generate an anchor node that links to `http://www.example.com` with "click here" as the text.
23
+ Include `PageBuilder::TagHelpers` in the class where you want to build out pages. It will add helper methods for most HTML 5 tags. As an example, you can then call `a 'click here', href: 'http://www.example.com'` to generate an anchor node that links to `http://www.example.com` with "click here" as the text.
24
+
25
+ For a list of currently supported tags see [TagHelpers Docs](https://www.rubydoc.info/gems/pagebuilder/PageBuilder/TagHelpers)
24
26
 
25
27
  ### Available helpers
26
28
 
@@ -1,19 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'pagebuilder/script_manager'
4
+
3
5
  module PageBuilder
4
6
 
5
7
  # Adds helper methods to the standard Nokogiri HTML document and
6
8
  # forces an html5 doctype
7
9
  class Document < Nokogiri::HTML::Document
10
+ extend Forwardable
8
11
 
9
- # TODO Make helpers for more often used meta tags
10
- # TODO make helpers for more common link tags
12
+ # @!method add_script(uri, **attributes)
13
+ # @see ScriptManager#add_script
14
+ # @!method remove_script(uri)
15
+ # @see ScriptManager#remove_script
16
+ def_delegators :script_manager, :add_script, :remove_script
11
17
 
12
18
  def self.new
13
- # This is the only way I've found so far to force the html5 subtype
19
+ # This is the only way I've found so far to force the html5 doctype
14
20
  parse('<!DOCTYPE html><html><head></head><body></body></html>')
15
21
  end
16
22
 
23
+ # Returns the base uri set for the document if there is one
24
+ # @return [String|nil]
25
+ def base_uri
26
+ head.at('base')&.attr('href')
27
+ end
28
+
29
+ # Sets the base uri for the document, reuses the same <base> tag if one exists
30
+ # @param uri [String]
31
+ # @return [void]
32
+ def base_uri=(uri)
33
+ base_tag = head.at('base') || head.add_child(Elements::Basic.new('base', self))
34
+ base_tag['href'] = uri
35
+ end
36
+
17
37
  # Gets the body node for the document
18
38
  # @return [Nokogiri::XML::Node]
19
39
  def body
@@ -26,6 +46,19 @@ module PageBuilder
26
46
  @head ||= at('/html/head')
27
47
  end
28
48
 
49
+ # Add managed nodes and then convert to html
50
+ # @see Nokogiri::HTML::Document#to_html
51
+ def to_html(*options)
52
+ @script_manager.append_tags(body) if @script_manager
53
+ super
54
+ end
55
+
56
+ private
57
+
58
+ def script_manager
59
+ @script_manager ||= ScriptManager.new
60
+ end
61
+
29
62
  end
30
63
 
31
64
  end
@@ -5,6 +5,11 @@ module PageBuilder
5
5
  # we can add extra helpers
6
6
  class Basic < Nokogiri::XML::Element
7
7
 
8
+ # Create a shorthand way to add multiple children and return the last one.
9
+ # With helpers this could be `ul >> li >> a(href: 'example.com')`
10
+ # (see Nokogiri::XML::Element#add_child)
11
+ alias_method :>>, :add_child
12
+
8
13
  # Helper to easily set the content and attributes for this element
9
14
  # @param content [String] text for the content of the element
10
15
  # @param attributes [] keyword arguments for the attributes that should be set
@@ -24,7 +29,7 @@ module PageBuilder
24
29
  end
25
30
 
26
31
  # Helper to set data attributes as a single call instead of
27
- # an individual line for each attributes
32
+ # an individual line for each attribute
28
33
  # @param attributes [Hash] data attributes that should be set (minus the "data-" prefix)
29
34
  # @return void
30
35
  def data_attributes=(attributes)
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+
5
+ # Used to keep track of added/removed javascript
6
+ # and to generate script tags in the correct order
7
+ class ScriptManager
8
+ extend Forwardable
9
+
10
+ def initialize
11
+ @index = []
12
+ @scripts = {}
13
+ end
14
+
15
+ # Adds a script to be loaded if it doesn't exist
16
+ # or updates stored tag attributes if it does
17
+ # @param uri [String] the src of the script
18
+ # @return [Boolean] true if script is added, false if uri already existed
19
+ def add_script(uri, **attributes)
20
+ uri_for_index = uri.downcase
21
+ if attrs = @scripts[uri_for_index]
22
+ attrs.merge!(attributes)
23
+ false
24
+ else
25
+ attributes[:src] = uri
26
+ @scripts[uri_for_index] = attributes
27
+ @index << uri_for_index
28
+ true
29
+ end
30
+ end
31
+
32
+ # Creates the script tags requested in the correct order
33
+ # @param [Nokogiri::XML::Node] node to append script tags to
34
+ def append_tags(node)
35
+ document = node.document
36
+ @index.each do |i|
37
+ node << Elements::Basic.new('script', document).configure(@scripts[i])
38
+ end
39
+ end
40
+
41
+ # Removes a script that was previously added so that it won't be output
42
+ # @param uri [String] the uri of the script to remove
43
+ def remove_script(uri)
44
+ uri_for_index = uri.downcase
45
+ @index.delete(uri_for_index)
46
+ @scripts.delete(uri_for_index)
47
+ end
48
+ end
49
+ end
@@ -5,61 +5,79 @@ module PageBuilder
5
5
 
6
6
  private
7
7
 
8
- def area(content = nil, **attributes)
9
- pagebuilder_basic_element('area', content, attributes)
8
+ # @!group Available Tags
9
+
10
+ # @!visibility public
11
+ def area(**attributes)
12
+ pagebuilder_basic_element('area', nil, attributes)
10
13
  end
11
14
 
15
+ # @!visibility public
12
16
  def audio(content = nil, **attributes)
13
17
  pagebuilder_basic_element('audio', content, attributes)
14
18
  end
15
19
 
20
+ # @!visibility public
16
21
  def canvas(content = nil, **attributes)
17
22
  pagebuilder_basic_element('canvas', content, attributes)
18
23
  end
19
24
 
20
- def embed(content = nil, **attributes)
21
- pagebuilder_basic_element('embed', content, attributes)
25
+ # @!visibility public
26
+ def embed(**attributes)
27
+ pagebuilder_basic_element('embed', nil, attributes)
22
28
  end
23
29
 
30
+ # @!visibility public
24
31
  def figcaption(content = nil, **attributes)
25
32
  pagebuilder_basic_element('figcaption', content, attributes)
26
33
  end
27
34
 
35
+ # @!visibility public
28
36
  def figure(content = nil, **attributes)
29
37
  pagebuilder_basic_element('figure', content, attributes)
30
38
  end
31
39
 
40
+ # @!visibility public
32
41
  def iframe(content = nil, **attributes)
33
42
  pagebuilder_basic_element('iframe', content, attributes)
34
43
  end
35
44
 
36
- def img(content = nil, **attributes)
37
- pagebuilder_basic_element('img', content, attributes)
45
+ # @!visibility public
46
+ def img(**attributes)
47
+ pagebuilder_basic_element('img', nil, attributes)
38
48
  end
39
49
 
50
+ # @!visibility public
40
51
  def map(content = nil, **attributes)
41
52
  pagebuilder_basic_element('map', content, attributes)
42
53
  end
43
54
 
55
+ # @!visibility public
44
56
  def object(content = nil, **attributes)
45
57
  pagebuilder_basic_element('object', content, attributes)
46
58
  end
47
59
 
48
- def param(content = nil, **attributes)
49
- pagebuilder_basic_element('param', content, attributes)
60
+ # @!visibility public
61
+ def param(**attributes)
62
+ pagebuilder_basic_element('param', nil, attributes)
50
63
  end
51
64
 
52
- def source(content = nil, **attributes)
53
- pagebuilder_basic_element('source', content, attributes)
65
+ # @!visibility public
66
+ def source(**attributes)
67
+ pagebuilder_basic_element('source', nil, attributes)
54
68
  end
55
69
 
56
- def track(content = nil, **attributes)
57
- pagebuilder_basic_element('track', content, attributes)
70
+ # @!visibility public
71
+ def track(**attributes)
72
+ pagebuilder_basic_element('track', nil, attributes)
58
73
  end
59
74
 
75
+ # @!visibility public
60
76
  def video(content = nil, **attributes)
61
77
  pagebuilder_basic_element('video', content, attributes)
62
78
  end
63
79
 
80
+ # @!endgroup Available Tags
81
+
64
82
  end
65
83
  end
@@ -5,86 +5,115 @@ module PageBuilder
5
5
 
6
6
  private
7
7
 
8
+ # @!group Available Tags
9
+
10
+ # @!visibility public
8
11
  def button(content = nil, **attributes)
9
12
  pagebuilder_basic_element('button', content, attributes)
10
13
  end
11
14
 
12
- def checkbox(content = nil, **attributes)
13
- pagebuilder_configured_element(PageBuilder::Elements::Inputs::Checkbox, content, attributes)
15
+ # @!visibility public
16
+ def checkbox(**attributes)
17
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Checkbox, nil, attributes)
14
18
  end
15
19
 
16
- def email_input(content = nil, **attributes)
17
- pagebuilder_configured_element(PageBuilder::Elements::Inputs::Email, content, attributes)
20
+ # @!visibility public
21
+ def email_input(**attributes)
22
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Email, nil, attributes)
18
23
  end
19
24
 
25
+ # @!visibility public
20
26
  def fieldset(content = nil, **attributes)
21
27
  pagebuilder_basic_element('fieldset', content, attributes)
22
28
  end
23
29
 
24
- def file_input(content = nil, **attributes)
25
- pagebuilder_configured_element(PageBuilder::Elements::Inputs::File, content, attributes)
30
+ # @!visibility public
31
+ def file_input(**attributes)
32
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::File, nil, attributes)
26
33
  end
27
34
 
35
+ # @!visibility public
28
36
  def form(content = nil, **attributes)
29
37
  pagebuilder_basic_element('form', content, attributes)
30
38
  end
31
39
 
32
- def hidden_input(content = nil, **attributes)
33
- pagebuilder_configured_element(PageBuilder::Elements::Inputs::Hidden, content, attributes)
40
+ # @!visibility public
41
+ def hidden_input(**attributes)
42
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Hidden, nil, attributes)
34
43
  end
35
44
 
36
- def input(content = nil, **attributes)
37
- pagebuilder_configured_element(PageBuilder::Elements::Input, content, attributes)
45
+ # @!visibility public
46
+ def input(**attributes)
47
+ pagebuilder_configured_element(PageBuilder::Elements::Input, nil, attributes)
38
48
  end
39
49
 
40
- def keygen(content = nil, **attributes)
41
- pagebuilder_basic_element('keygen', content, attributes)
50
+ # @!visibility public
51
+ def keygen(**attributes)
52
+ pagebuilder_basic_element('keygen', nil, attributes)
42
53
  end
43
54
 
44
55
  # TODO add helpers for things like labeled_input
56
+
57
+ # @!visibility public
45
58
  def label(content = nil, **attributes)
46
59
  pagebuilder_basic_element('label', content, attributes)
47
60
  end
48
61
 
62
+ # @!visibility public
49
63
  def legend(content = nil, **attributes)
50
64
  pagebuilder_basic_element('legend', content, attributes)
51
65
  end
52
66
 
53
- def optgroup(content = nil, **attributes)
54
- pagebuilder_basic_element('optgroup', content, attributes)
67
+ # TODO make optgroup take an array of options as the first argument
68
+
69
+ # @!visibility public
70
+ def optgroup(**attributes)
71
+ pagebuilder_basic_element('optgroup', nil, attributes)
55
72
  end
56
73
 
74
+ # @!visibility public
57
75
  def option(content = nil, **attributes)
58
76
  pagebuilder_basic_element('option', content, attributes)
59
77
  end
60
78
 
61
- def password_input(content = nil, **attributes)
62
- pagebuilder_configured_element(PageBuilder::Elements::Inputs::Password, content, attributes)
79
+ # @!visibility public
80
+ def password_input(**attributes)
81
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Password, nil, attributes)
63
82
  end
64
83
 
65
- def radio_button(content = nil, **attributes)
66
- pagebuilder_configured_element(PageBuilder::Elements::Inputs::RadioButton, content, attributes)
84
+ # @!visibility public
85
+ def radio_button(**attributes)
86
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::RadioButton, nil, attributes)
67
87
  end
68
88
 
69
- def search_input(content = nil, **attributes)
70
- pagebuilder_configured_element(PageBuilder::Elements::Inputs::Search, content, attributes)
89
+ # @!visibility public
90
+ def search_input(**attributes)
91
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Search, nil, attributes)
71
92
  end
72
93
 
73
- def select(content = nil, **attributes)
74
- pagebuilder_basic_element('select', content, attributes)
94
+ # TODO Make select take an array of options/optgroups
95
+
96
+ # @!visibility public
97
+ def select(**attributes)
98
+ pagebuilder_basic_element('select', nil, attributes)
75
99
  end
76
100
 
77
- def submit_button(content = nil, **attributes)
78
- pagebuilder_configured_element(PageBuilder::Elements::Inputs::SubmitButton, content, attributes)
101
+ # @!visibility public
102
+ def submit_button(**attributes)
103
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::SubmitButton, nil, attributes)
79
104
  end
80
105
 
81
- def text_input(content = nil, **attributes)
82
- pagebuilder_configured_element(PageBuilder::Elements::Inputs::Text, content, attributes)
106
+ # @!visibility public
107
+ def text_input(**attributes)
108
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Text, nil, attributes)
83
109
  end
84
110
 
111
+ # @!visibility public
85
112
  def textarea(content = nil, **attributes)
86
113
  pagebuilder_basic_element('textarea', content, attributes)
87
114
  end
88
115
 
116
+ # @!endgroup Available Tags
117
+
89
118
  end
90
119
  end
@@ -3,31 +3,43 @@
3
3
  module PageBuilder
4
4
  module TagHelpers
5
5
 
6
+ # TODO Make the containers (ol/ul) take arrays of list items
7
+
6
8
  private
7
9
 
10
+ # @!group Available Tags
11
+
12
+ # @!visibility public
8
13
  def dd(content = nil, **attributes)
9
14
  pagebuilder_basic_element('dd', content, attributes)
10
15
  end
11
16
 
12
- def dl(content = nil, **attributes)
13
- pagebuilder_basic_element('dl', content, attributes)
17
+ # @!visibility public
18
+ def dl(**attributes)
19
+ pagebuilder_basic_element('dl', nil, attributes)
14
20
  end
15
21
 
22
+ # @!visibility public
16
23
  def dt(content = nil, **attributes)
17
24
  pagebuilder_basic_element('dt', content, attributes)
18
25
  end
19
26
 
27
+ # @!visibility public
20
28
  def li(content = nil, **attributes)
21
29
  pagebuilder_basic_element('li', content, attributes)
22
30
  end
23
31
 
24
- def ol(content = nil, **attributes)
25
- pagebuilder_basic_element('ol', content, attributes)
32
+ # @!visibility public
33
+ def ol(**attributes)
34
+ pagebuilder_basic_element('ol', nil, attributes)
26
35
  end
27
36
 
28
- def ul(content = nil, **attributes)
29
- pagebuilder_basic_element('ul', content, attributes)
37
+ # @!visibility public
38
+ def ul(**attributes)
39
+ pagebuilder_basic_element('ul', nil, attributes)
30
40
  end
31
41
 
42
+ # @!endgroup Available Tags
43
+
32
44
  end
33
45
  end
@@ -7,53 +7,64 @@ module PageBuilder
7
7
  # public method space for the class these are included in
8
8
  private
9
9
 
10
+ # @!group Available Tags
11
+
12
+ # @!visibility public
10
13
  def a(content = nil, **attributes)
11
14
  pagebuilder_configured_element(Elements::Anchor, content, attributes)
12
15
  end
13
16
 
14
- def br(content = nil, **attributes)
15
- pagebuilder_basic_element('br', content, attributes)
17
+ # @!visibility public
18
+ def br(**attributes)
19
+ pagebuilder_basic_element('br', nil, attributes)
16
20
  end
17
21
 
22
+ # @!visibility public
18
23
  def datalist(content = nil, **attributes)
19
24
  pagebuilder_basic_element('datalist', content, attributes)
20
25
  end
21
26
 
27
+ # @!visibility public
22
28
  def dialog(content = nil, **attributes)
23
29
  pagebuilder_basic_element('dialog', content, attributes)
24
30
  end
25
31
 
26
- def hr(content = nil, **attributes)
27
- pagebuilder_basic_element('hr', content, attributes)
32
+ # @!visibility public
33
+ def hr(**attributes)
34
+ pagebuilder_basic_element('hr', nil, attributes)
28
35
  end
29
36
 
37
+ # @!visibility public
30
38
  def menu(content = nil, **attributes)
31
39
  pagebuilder_basic_element('menu', content, attributes)
32
40
  end
33
41
 
34
- def menuitem(content = nil, **attributes)
35
- pagebuilder_basic_element('menuitem', content, attributes)
36
- end
37
-
42
+ # @!visibility public
38
43
  def noscript(content = nil, **attributes)
39
44
  pagebuilder_basic_element('noscript', content, attributes)
40
45
  end
41
46
 
47
+ # @!visibility public
42
48
  def progress(content = nil, **attributes)
43
49
  pagebuilder_basic_element('progress', content, attributes)
44
50
  end
45
51
 
52
+ # @!visibility public
46
53
  def script(content = nil, **attributes)
47
54
  pagebuilder_basic_element('script', content, attributes)
48
55
  end
49
56
 
57
+ # @!visibility public
50
58
  def style(content = nil, **attributes)
51
59
  pagebuilder_basic_element('style', content, attributes)
52
60
  end
53
61
 
62
+ # @!visibility public
54
63
  def template(content = nil, **attributes)
55
64
  pagebuilder_basic_element('template', content, attributes)
56
65
  end
57
66
 
67
+ # @!endgroup Available Tags
68
+
58
69
  end
59
70
  end
@@ -5,65 +5,84 @@ module PageBuilder
5
5
 
6
6
  private
7
7
 
8
+ # @!group Available Tags
9
+
10
+ # @!visibility public
8
11
  def article(content = nil, **attributes)
9
12
  pagebuilder_basic_element('article', content, attributes)
10
13
  end
11
14
 
15
+ # @!visibility public
12
16
  def aside(content = nil, **attributes)
13
17
  pagebuilder_basic_element('aside', content, attributes)
14
18
  end
15
19
 
20
+ # @!visibility public
16
21
  def div(content = nil, **attributes)
17
22
  pagebuilder_basic_element('div', content, attributes)
18
23
  end
19
24
 
25
+ # @!visibility public
20
26
  def footer(content = nil, **attributes)
21
27
  pagebuilder_basic_element('footer', content, attributes)
22
28
  end
23
29
 
30
+ # @!visibility public
24
31
  def h1(content = nil, **attributes)
25
32
  pagebuilder_basic_element('h1', content, attributes)
26
33
  end
27
34
 
35
+ # @!visibility public
28
36
  def h2(content = nil, **attributes)
29
37
  pagebuilder_basic_element('h2', content, attributes)
30
38
  end
31
39
 
40
+ # @!visibility public
32
41
  def h3(content = nil, **attributes)
33
42
  pagebuilder_basic_element('h3', content, attributes)
34
43
  end
35
44
 
45
+ # @!visibility public
36
46
  def h4(content = nil, **attributes)
37
47
  pagebuilder_basic_element('h4', content, attributes)
38
48
  end
39
49
 
50
+ # @!visibility public
40
51
  def h5(content = nil, **attributes)
41
52
  pagebuilder_basic_element('h5', content, attributes)
42
53
  end
43
54
 
55
+ # @!visibility public
44
56
  def h6(content = nil, **attributes)
45
57
  pagebuilder_basic_element('h6', content, attributes)
46
58
  end
47
59
 
60
+ # @!visibility public
48
61
  def header(content = nil, **attributes)
49
62
  pagebuilder_basic_element('header', content, attributes)
50
63
  end
51
64
 
52
- def hgroup(content = nil, **attributes)
53
- pagebuilder_basic_element('hgroup', content, attributes)
65
+ # @!visibility public
66
+ def hgroup(**attributes)
67
+ pagebuilder_basic_element('hgroup', nil, attributes)
54
68
  end
55
69
 
70
+ # @!visibility public
56
71
  def main(content = nil, **attributes)
57
72
  pagebuilder_basic_element('main', content, attributes)
58
73
  end
59
74
 
75
+ # @!visibility public
60
76
  def nav(content = nil, **attributes)
61
77
  pagebuilder_basic_element('nav', content, attributes)
62
78
  end
63
79
 
80
+ # @!visibility public
64
81
  def section(content = nil, **attributes)
65
82
  pagebuilder_basic_element('section', content, attributes)
66
83
  end
67
84
 
85
+ # @!endgroup Available Tags
86
+
68
87
  end
69
88
  end
@@ -5,45 +5,61 @@ module PageBuilder
5
5
 
6
6
  private
7
7
 
8
+ # @!group Available Tags
9
+
10
+ # @!visibility public
8
11
  def caption(content = nil, **attributes)
9
12
  pagebuilder_basic_element('caption', content, attributes)
10
13
  end
11
14
 
12
- def col(content = nil, **attributes)
13
- pagebuilder_basic_element('col', content, attributes)
15
+ # @!visibility public
16
+ def col(**attributes)
17
+ pagebuilder_basic_element('col', nil, attributes)
14
18
  end
15
19
 
16
- def colgroup(content = nil, **attributes)
17
- pagebuilder_basic_element('colgroup', content, attributes)
20
+ # @!visibility public
21
+ def colgroup(**attributes)
22
+ pagebuilder_basic_element('colgroup', nil, attributes)
18
23
  end
19
24
 
20
- def table(content = nil, **attributes)
21
- pagebuilder_basic_element('table', content, attributes)
25
+ # @!visibility public
26
+ def table(**attributes)
27
+ pagebuilder_basic_element('table', nil, attributes)
22
28
  end
23
29
 
24
- def tbody(content = nil, **attributes)
25
- pagebuilder_basic_element('tbody', content, attributes)
30
+ # TODO allow this to take an array of trs
31
+
32
+ # @!visibility public
33
+ def tbody(**attributes)
34
+ pagebuilder_basic_element('tbody', nil, attributes)
26
35
  end
27
36
 
37
+ # @!visibility public
28
38
  def td(content = nil, **attributes)
29
39
  pagebuilder_basic_element('td', content, attributes)
30
40
  end
31
41
 
32
- def tfoot(content = nil, **attributes)
33
- pagebuilder_basic_element('tfoot', content, attributes)
42
+ # @!visibility public
43
+ def tfoot(**attributes)
44
+ pagebuilder_basic_element('tfoot', nil, attributes)
34
45
  end
35
46
 
47
+ # @!visibility public
36
48
  def th(content = nil, **attributes)
37
49
  pagebuilder_basic_element('th', content, attributes)
38
50
  end
39
51
 
40
- def thead(content = nil, **attributes)
41
- pagebuilder_basic_element('thead', content, attributes)
52
+ # @!visibility public
53
+ def thead(**attributes)
54
+ pagebuilder_basic_element('thead', nil, attributes)
42
55
  end
43
56
 
44
- def tr(content = nil, **attributes)
45
- pagebuilder_basic_element('tr', content, attributes)
57
+ # @!visibility public
58
+ def tr(**attributes)
59
+ pagebuilder_basic_element('tr', nil, attributes)
46
60
  end
47
61
 
62
+ # @!endgroup Available Tags
63
+
48
64
  end
49
65
  end
@@ -5,161 +5,204 @@ module PageBuilder
5
5
 
6
6
  private
7
7
 
8
+ # @!group Available Tags
9
+
10
+ # @!visibility public
8
11
  def abbr(content = nil, **attributes)
9
12
  pagebuilder_basic_element('abbr', content, attributes)
10
13
  end
11
14
 
15
+ # @!visibility public
12
16
  def address(content = nil, **attributes)
13
17
  pagebuilder_basic_element('address', content, attributes)
14
18
  end
15
19
 
20
+ # @!visibility public
16
21
  def b(content = nil, **attributes)
17
22
  pagebuilder_basic_element('b', content, attributes)
18
23
  end
19
24
 
25
+ # @!visibility public
20
26
  def bdi(content = nil, **attributes)
21
27
  pagebuilder_basic_element('bdi', content, attributes)
22
28
  end
23
29
 
30
+ # @!visibility public
24
31
  def bdo(content = nil, **attributes)
25
32
  pagebuilder_basic_element('bdo', content, attributes)
26
33
  end
27
34
 
35
+ # @!visibility public
28
36
  def blockquote(content = nil, **attributes)
29
37
  pagebuilder_basic_element('blockquote', content, attributes)
30
38
  end
31
39
 
40
+ # @!visibility public
32
41
  def cite(content = nil, **attributes)
33
42
  pagebuilder_basic_element('cite', content, attributes)
34
43
  end
35
44
 
45
+ # @!visibility public
36
46
  def code(content = nil, **attributes)
37
47
  pagebuilder_basic_element('code', content, attributes)
38
48
  end
39
49
 
50
+ # @!visibility public
40
51
  def data(content = nil, **attributes)
41
52
  pagebuilder_basic_element('data', content, attributes)
42
53
  end
43
54
 
55
+ # @!visibility public
44
56
  def del(content = nil, **attributes)
45
57
  pagebuilder_basic_element('del', content, attributes)
46
58
  end
47
59
 
60
+ # @!visibility public
48
61
  def details(content = nil, **attributes)
49
62
  pagebuilder_basic_element('details', content, attributes)
50
63
  end
51
64
 
65
+ # @!visibility public
52
66
  def dfn(content = nil, **attributes)
53
67
  pagebuilder_basic_element('dfn', content, attributes)
54
68
  end
55
69
 
70
+ # @!visibility public
56
71
  def em(content = nil, **attributes)
57
72
  pagebuilder_basic_element('em', content, attributes)
58
73
  end
59
74
 
75
+ # @!visibility public
60
76
  def i(content = nil, **attributes)
61
77
  pagebuilder_basic_element('i', content, attributes)
62
78
  end
63
79
 
80
+ # @!visibility public
64
81
  def ins(content = nil, **attributes)
65
82
  pagebuilder_basic_element('ins', content, attributes)
66
83
  end
67
84
 
85
+ # @!visibility public
68
86
  def kbd(content = nil, **attributes)
69
87
  pagebuilder_basic_element('kbd', content, attributes)
70
88
  end
71
89
 
90
+ # @!visibility public
72
91
  def mark(content = nil, **attributes)
73
92
  pagebuilder_basic_element('mark', content, attributes)
74
93
  end
75
94
 
95
+ # @!visibility public
76
96
  def meter(content = nil, **attributes)
77
97
  pagebuilder_basic_element('meter', content, attributes)
78
98
  end
79
99
 
100
+ # @!visibility public
80
101
  def output(content = nil, **attributes)
81
102
  pagebuilder_basic_element('output', content, attributes)
82
103
  end
83
104
 
105
+ # @!visibility public
84
106
  def p(content = nil, **attributes)
85
107
  pagebuilder_basic_element('p', content, attributes)
86
108
  end
87
109
 
110
+ # @!visibility public
88
111
  def pre(content = nil, **attributes)
89
112
  pagebuilder_basic_element('pre', content, attributes)
90
113
  end
91
114
 
115
+ # @!visibility public
92
116
  def q(content = nil, **attributes)
93
117
  pagebuilder_basic_element('q', content, attributes)
94
118
  end
95
119
 
120
+ # @!visibility public
96
121
  def rb(content = nil, **attributes)
97
122
  pagebuilder_basic_element('rb', content, attributes)
98
123
  end
99
124
 
125
+ # @!visibility public
100
126
  def rp(content = nil, **attributes)
101
127
  pagebuilder_basic_element('rp', content, attributes)
102
128
  end
103
129
 
130
+ # @!visibility public
104
131
  def rt(content = nil, **attributes)
105
132
  pagebuilder_basic_element('rt', content, attributes)
106
133
  end
107
134
 
135
+ # @!visibility public
108
136
  def rtc(content = nil, **attributes)
109
137
  pagebuilder_basic_element('rtc', content, attributes)
110
138
  end
111
139
 
140
+ # @!visibility public
112
141
  def ruby(content = nil, **attributes)
113
142
  pagebuilder_basic_element('ruby', content, attributes)
114
143
  end
115
144
 
145
+ # @!visibility public
116
146
  def s(content = nil, **attributes)
117
147
  pagebuilder_basic_element('s', content, attributes)
118
148
  end
119
149
 
150
+ # @!visibility public
120
151
  def samp(content = nil, **attributes)
121
152
  pagebuilder_basic_element('samp', content, attributes)
122
153
  end
123
154
 
155
+ # @!visibility public
124
156
  def small(content = nil, **attributes)
125
157
  pagebuilder_basic_element('small', content, attributes)
126
158
  end
127
159
 
160
+ # @!visibility public
128
161
  def span(content = nil, **attributes)
129
162
  pagebuilder_basic_element('span', content, attributes)
130
163
  end
131
164
 
165
+ # @!visibility public
132
166
  def strong(content = nil, **attributes)
133
167
  pagebuilder_basic_element('strong', content, attributes)
134
168
  end
135
169
 
170
+ # @!visibility public
136
171
  def sub(content = nil, **attributes)
137
172
  pagebuilder_basic_element('sub', content, attributes)
138
173
  end
139
174
 
175
+ # @!visibility public
140
176
  def summary(content = nil, **attributes)
141
177
  pagebuilder_basic_element('summary', content, attributes)
142
178
  end
143
179
 
180
+ # @!visibility public
144
181
  def sup(content = nil, **attributes)
145
182
  pagebuilder_basic_element('sup', content, attributes)
146
183
  end
147
184
 
185
+ # @!visibility public
148
186
  def time(content = nil, **attributes)
149
187
  pagebuilder_basic_element('time', content, attributes)
150
188
  end
151
189
 
190
+ # @!visibility public
152
191
  def u(content = nil, **attributes)
153
192
  pagebuilder_basic_element('u', content, attributes)
154
193
  end
155
194
 
195
+ # @!visibility public
156
196
  def var(content = nil, **attributes)
157
197
  pagebuilder_basic_element('var', content, attributes)
158
198
  end
159
199
 
160
- def wbr(content = nil, **attributes)
161
- pagebuilder_basic_element('wbr', content, attributes)
200
+ # @!visibility public
201
+ def wbr(**attributes)
202
+ pagebuilder_basic_element('wbr', nil, attributes)
162
203
  end
163
204
 
205
+ # @!endgroup Available Tags
206
+
164
207
  end
165
208
  end
@@ -1,4 +1,4 @@
1
1
  module PageBuilder
2
2
  # Current version of the gem
3
- VERSION = '0.1.0'
3
+ VERSION = '0.2.0'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagebuilder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Widmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-19 00:00:00.000000000 Z
11
+ date: 2018-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -108,6 +108,7 @@ files:
108
108
  - ".gitignore"
109
109
  - ".rspec"
110
110
  - ".travis.yml"
111
+ - CHANGELOG.md
111
112
  - CODE_OF_CONDUCT.md
112
113
  - LICENSE.txt
113
114
  - README.md
@@ -131,6 +132,7 @@ files:
131
132
  - lib/pagebuilder/elements/inputs/search.rb
132
133
  - lib/pagebuilder/elements/inputs/submit_button.rb
133
134
  - lib/pagebuilder/elements/inputs/text.rb
135
+ - lib/pagebuilder/script_manager.rb
134
136
  - lib/pagebuilder/tag_helpers.rb
135
137
  - lib/pagebuilder/tag_helpers/embeds.rb
136
138
  - lib/pagebuilder/tag_helpers/forms.rb