pagebuilder 0.1.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.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +10 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +51 -0
  8. data/Rakefile +6 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/gems.rb +6 -0
  12. data/lib/pagebuilder.rb +11 -0
  13. data/lib/pagebuilder/document.rb +31 -0
  14. data/lib/pagebuilder/elements.rb +8 -0
  15. data/lib/pagebuilder/elements/anchor.rb +31 -0
  16. data/lib/pagebuilder/elements/basic.rb +38 -0
  17. data/lib/pagebuilder/elements/input.rb +44 -0
  18. data/lib/pagebuilder/elements/inputs.rb +13 -0
  19. data/lib/pagebuilder/elements/inputs/checkbox.rb +19 -0
  20. data/lib/pagebuilder/elements/inputs/email.rb +18 -0
  21. data/lib/pagebuilder/elements/inputs/file.rb +18 -0
  22. data/lib/pagebuilder/elements/inputs/hidden.rb +18 -0
  23. data/lib/pagebuilder/elements/inputs/password.rb +18 -0
  24. data/lib/pagebuilder/elements/inputs/radio_button.rb +19 -0
  25. data/lib/pagebuilder/elements/inputs/search.rb +18 -0
  26. data/lib/pagebuilder/elements/inputs/submit_button.rb +18 -0
  27. data/lib/pagebuilder/elements/inputs/text.rb +18 -0
  28. data/lib/pagebuilder/tag_helpers.rb +23 -0
  29. data/lib/pagebuilder/tag_helpers/embeds.rb +65 -0
  30. data/lib/pagebuilder/tag_helpers/forms.rb +90 -0
  31. data/lib/pagebuilder/tag_helpers/lists.rb +33 -0
  32. data/lib/pagebuilder/tag_helpers/miscellaneous.rb +59 -0
  33. data/lib/pagebuilder/tag_helpers/page_structure.rb +69 -0
  34. data/lib/pagebuilder/tag_helpers/pagebuilder_prefixed_helpers.rb +28 -0
  35. data/lib/pagebuilder/tag_helpers/tables.rb +49 -0
  36. data/lib/pagebuilder/tag_helpers/text_markup.rb +165 -0
  37. data/lib/pagebuilder/version.rb +4 -0
  38. data/pagebuilder.gemspec +34 -0
  39. metadata +170 -0
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module Elements
5
+ module Inputs
6
+
7
+ # Creates file input nodes
8
+ class File < PageBuilder::Elements::Input
9
+
10
+ def initialize(*args)
11
+ super
12
+ self.type = 'file'
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module Elements
5
+ module Inputs
6
+
7
+ # Creates hidden input nodes
8
+ class Hidden < PageBuilder::Elements::Input
9
+
10
+ def initialize(*args)
11
+ super
12
+ self.type = 'hidden'
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module Elements
5
+ module Inputs
6
+
7
+ # Creates password input nodes
8
+ class Password < PageBuilder::Elements::Input
9
+
10
+ def initialize(*args)
11
+ super
12
+ self.type = 'password'
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module Elements
5
+ module Inputs
6
+
7
+ # Creates radio button nodes and adds some helper
8
+ # methods for commonly used attributes
9
+ class RadioButton < PageBuilder::Elements::Input
10
+
11
+ def initialize(*args)
12
+ super
13
+ self.type = 'radio'
14
+ end
15
+
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module Elements
5
+ module Inputs
6
+
7
+ # Creates search input nodes
8
+ class Search < PageBuilder::Elements::Input
9
+
10
+ def initialize(*args)
11
+ super
12
+ self.type = 'search'
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module Elements
5
+ module Inputs
6
+
7
+ # Creates submit button nodes
8
+ class SubmitButton < PageBuilder::Elements::Input
9
+
10
+ def initialize(*args)
11
+ super
12
+ self.type = 'submit'
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module Elements
5
+ module Inputs
6
+
7
+ # Creates text input nodes
8
+ class Text < PageBuilder::Elements::Input
9
+
10
+ def initialize(*args)
11
+ super
12
+ self.type = 'text'
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,23 @@
1
+ # Helper module to make building pages easier
2
+ module PageBuilder::TagHelpers
3
+
4
+ # Helper for converting this object to html
5
+ # It passes arguments along to whatever is set as the
6
+ # pagebuilder document so see associated documentation for the
7
+ # allowed arguments
8
+ def to_html(*args)
9
+ pagebuilder_document.to_html(*args)
10
+ end
11
+
12
+ end
13
+
14
+ # Actual helper implementations are split into several files
15
+ # to help with organization
16
+ require 'pagebuilder/tag_helpers/embeds'
17
+ require 'pagebuilder/tag_helpers/forms'
18
+ require 'pagebuilder/tag_helpers/lists'
19
+ require 'pagebuilder/tag_helpers/miscellaneous'
20
+ require 'pagebuilder/tag_helpers/page_structure'
21
+ require 'pagebuilder/tag_helpers/pagebuilder_prefixed_helpers'
22
+ require 'pagebuilder/tag_helpers/tables'
23
+ require 'pagebuilder/tag_helpers/text_markup'
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module TagHelpers
5
+
6
+ private
7
+
8
+ def area(content = nil, **attributes)
9
+ pagebuilder_basic_element('area', content, attributes)
10
+ end
11
+
12
+ def audio(content = nil, **attributes)
13
+ pagebuilder_basic_element('audio', content, attributes)
14
+ end
15
+
16
+ def canvas(content = nil, **attributes)
17
+ pagebuilder_basic_element('canvas', content, attributes)
18
+ end
19
+
20
+ def embed(content = nil, **attributes)
21
+ pagebuilder_basic_element('embed', content, attributes)
22
+ end
23
+
24
+ def figcaption(content = nil, **attributes)
25
+ pagebuilder_basic_element('figcaption', content, attributes)
26
+ end
27
+
28
+ def figure(content = nil, **attributes)
29
+ pagebuilder_basic_element('figure', content, attributes)
30
+ end
31
+
32
+ def iframe(content = nil, **attributes)
33
+ pagebuilder_basic_element('iframe', content, attributes)
34
+ end
35
+
36
+ def img(content = nil, **attributes)
37
+ pagebuilder_basic_element('img', content, attributes)
38
+ end
39
+
40
+ def map(content = nil, **attributes)
41
+ pagebuilder_basic_element('map', content, attributes)
42
+ end
43
+
44
+ def object(content = nil, **attributes)
45
+ pagebuilder_basic_element('object', content, attributes)
46
+ end
47
+
48
+ def param(content = nil, **attributes)
49
+ pagebuilder_basic_element('param', content, attributes)
50
+ end
51
+
52
+ def source(content = nil, **attributes)
53
+ pagebuilder_basic_element('source', content, attributes)
54
+ end
55
+
56
+ def track(content = nil, **attributes)
57
+ pagebuilder_basic_element('track', content, attributes)
58
+ end
59
+
60
+ def video(content = nil, **attributes)
61
+ pagebuilder_basic_element('video', content, attributes)
62
+ end
63
+
64
+ end
65
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module TagHelpers
5
+
6
+ private
7
+
8
+ def button(content = nil, **attributes)
9
+ pagebuilder_basic_element('button', content, attributes)
10
+ end
11
+
12
+ def checkbox(content = nil, **attributes)
13
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Checkbox, content, attributes)
14
+ end
15
+
16
+ def email_input(content = nil, **attributes)
17
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Email, content, attributes)
18
+ end
19
+
20
+ def fieldset(content = nil, **attributes)
21
+ pagebuilder_basic_element('fieldset', content, attributes)
22
+ end
23
+
24
+ def file_input(content = nil, **attributes)
25
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::File, content, attributes)
26
+ end
27
+
28
+ def form(content = nil, **attributes)
29
+ pagebuilder_basic_element('form', content, attributes)
30
+ end
31
+
32
+ def hidden_input(content = nil, **attributes)
33
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Hidden, content, attributes)
34
+ end
35
+
36
+ def input(content = nil, **attributes)
37
+ pagebuilder_configured_element(PageBuilder::Elements::Input, content, attributes)
38
+ end
39
+
40
+ def keygen(content = nil, **attributes)
41
+ pagebuilder_basic_element('keygen', content, attributes)
42
+ end
43
+
44
+ # TODO add helpers for things like labeled_input
45
+ def label(content = nil, **attributes)
46
+ pagebuilder_basic_element('label', content, attributes)
47
+ end
48
+
49
+ def legend(content = nil, **attributes)
50
+ pagebuilder_basic_element('legend', content, attributes)
51
+ end
52
+
53
+ def optgroup(content = nil, **attributes)
54
+ pagebuilder_basic_element('optgroup', content, attributes)
55
+ end
56
+
57
+ def option(content = nil, **attributes)
58
+ pagebuilder_basic_element('option', content, attributes)
59
+ end
60
+
61
+ def password_input(content = nil, **attributes)
62
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Password, content, attributes)
63
+ end
64
+
65
+ def radio_button(content = nil, **attributes)
66
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::RadioButton, content, attributes)
67
+ end
68
+
69
+ def search_input(content = nil, **attributes)
70
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Search, content, attributes)
71
+ end
72
+
73
+ def select(content = nil, **attributes)
74
+ pagebuilder_basic_element('select', content, attributes)
75
+ end
76
+
77
+ def submit_button(content = nil, **attributes)
78
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::SubmitButton, content, attributes)
79
+ end
80
+
81
+ def text_input(content = nil, **attributes)
82
+ pagebuilder_configured_element(PageBuilder::Elements::Inputs::Text, content, attributes)
83
+ end
84
+
85
+ def textarea(content = nil, **attributes)
86
+ pagebuilder_basic_element('textarea', content, attributes)
87
+ end
88
+
89
+ end
90
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module TagHelpers
5
+
6
+ private
7
+
8
+ def dd(content = nil, **attributes)
9
+ pagebuilder_basic_element('dd', content, attributes)
10
+ end
11
+
12
+ def dl(content = nil, **attributes)
13
+ pagebuilder_basic_element('dl', content, attributes)
14
+ end
15
+
16
+ def dt(content = nil, **attributes)
17
+ pagebuilder_basic_element('dt', content, attributes)
18
+ end
19
+
20
+ def li(content = nil, **attributes)
21
+ pagebuilder_basic_element('li', content, attributes)
22
+ end
23
+
24
+ def ol(content = nil, **attributes)
25
+ pagebuilder_basic_element('ol', content, attributes)
26
+ end
27
+
28
+ def ul(content = nil, **attributes)
29
+ pagebuilder_basic_element('ul', content, attributes)
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module TagHelpers
5
+
6
+ # Define all helpers as private so they don't polute the
7
+ # public method space for the class these are included in
8
+ private
9
+
10
+ def a(content = nil, **attributes)
11
+ pagebuilder_configured_element(Elements::Anchor, content, attributes)
12
+ end
13
+
14
+ def br(content = nil, **attributes)
15
+ pagebuilder_basic_element('br', content, attributes)
16
+ end
17
+
18
+ def datalist(content = nil, **attributes)
19
+ pagebuilder_basic_element('datalist', content, attributes)
20
+ end
21
+
22
+ def dialog(content = nil, **attributes)
23
+ pagebuilder_basic_element('dialog', content, attributes)
24
+ end
25
+
26
+ def hr(content = nil, **attributes)
27
+ pagebuilder_basic_element('hr', content, attributes)
28
+ end
29
+
30
+ def menu(content = nil, **attributes)
31
+ pagebuilder_basic_element('menu', content, attributes)
32
+ end
33
+
34
+ def menuitem(content = nil, **attributes)
35
+ pagebuilder_basic_element('menuitem', content, attributes)
36
+ end
37
+
38
+ def noscript(content = nil, **attributes)
39
+ pagebuilder_basic_element('noscript', content, attributes)
40
+ end
41
+
42
+ def progress(content = nil, **attributes)
43
+ pagebuilder_basic_element('progress', content, attributes)
44
+ end
45
+
46
+ def script(content = nil, **attributes)
47
+ pagebuilder_basic_element('script', content, attributes)
48
+ end
49
+
50
+ def style(content = nil, **attributes)
51
+ pagebuilder_basic_element('style', content, attributes)
52
+ end
53
+
54
+ def template(content = nil, **attributes)
55
+ pagebuilder_basic_element('template', content, attributes)
56
+ end
57
+
58
+ end
59
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PageBuilder
4
+ module TagHelpers
5
+
6
+ private
7
+
8
+ def article(content = nil, **attributes)
9
+ pagebuilder_basic_element('article', content, attributes)
10
+ end
11
+
12
+ def aside(content = nil, **attributes)
13
+ pagebuilder_basic_element('aside', content, attributes)
14
+ end
15
+
16
+ def div(content = nil, **attributes)
17
+ pagebuilder_basic_element('div', content, attributes)
18
+ end
19
+
20
+ def footer(content = nil, **attributes)
21
+ pagebuilder_basic_element('footer', content, attributes)
22
+ end
23
+
24
+ def h1(content = nil, **attributes)
25
+ pagebuilder_basic_element('h1', content, attributes)
26
+ end
27
+
28
+ def h2(content = nil, **attributes)
29
+ pagebuilder_basic_element('h2', content, attributes)
30
+ end
31
+
32
+ def h3(content = nil, **attributes)
33
+ pagebuilder_basic_element('h3', content, attributes)
34
+ end
35
+
36
+ def h4(content = nil, **attributes)
37
+ pagebuilder_basic_element('h4', content, attributes)
38
+ end
39
+
40
+ def h5(content = nil, **attributes)
41
+ pagebuilder_basic_element('h5', content, attributes)
42
+ end
43
+
44
+ def h6(content = nil, **attributes)
45
+ pagebuilder_basic_element('h6', content, attributes)
46
+ end
47
+
48
+ def header(content = nil, **attributes)
49
+ pagebuilder_basic_element('header', content, attributes)
50
+ end
51
+
52
+ def hgroup(content = nil, **attributes)
53
+ pagebuilder_basic_element('hgroup', content, attributes)
54
+ end
55
+
56
+ def main(content = nil, **attributes)
57
+ pagebuilder_basic_element('main', content, attributes)
58
+ end
59
+
60
+ def nav(content = nil, **attributes)
61
+ pagebuilder_basic_element('nav', content, attributes)
62
+ end
63
+
64
+ def section(content = nil, **attributes)
65
+ pagebuilder_basic_element('section', content, attributes)
66
+ end
67
+
68
+ end
69
+ end