pagebuilder 0.1.0 → 0.2.0

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 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