Skip to content

Commit 45f25be

Browse files
author
Nils Henning
committed
update em, fieldset, figure, footer, header, heading, hr, icon, iframe, img, input, ins, kbd, label, legen, link, ul, ol, li components and specs
1 parent 9b52f2a commit 45f25be

20 files changed

+369
-583
lines changed

.byebug_history

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
continue
2+
static_output

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,6 @@ builder/tmp/
2121
builder/public/packs
2222
.idea/
2323
.vscode
24+
.byebug_history
2425

2526
/coverage

lib/matestack/ui/core/components.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,26 @@ def self.require_core_component(name)
5151
require_core_component "div"
5252
require_core_component "dl"
5353
require_core_component "dt"
54+
require_core_component "em"
55+
require_core_component "fieldset"
56+
require_core_component "figure"
57+
require_core_component "footer"
58+
require_core_component "header"
5459
require_core_component "heading"
60+
require_core_component "hr"
61+
require_core_component "icon"
62+
require_core_component "iframe"
63+
require_core_component "img"
64+
require_core_component "input"
65+
require_core_component "ins"
66+
require_core_component "kbd"
67+
require_core_component "label"
68+
require_core_component "legend"
69+
require_core_component "li"
5570
require_core_component "link"
5671
require_core_component "main"
5772
require_core_component "nav"
73+
require_core_component "ol"
5874
require_core_component "paragraph"
5975
require_core_component "plain"
6076
require_core_component "span"
@@ -67,6 +83,7 @@ def self.require_core_component(name)
6783
require_core_component "thead"
6884
require_core_component "tr"
6985
require_core_component "transition"
86+
require_core_component "ul"
7087
require_core_component "form"
7188
require_core_component "form/input"
7289
require_core_component "form/select"
@@ -100,10 +117,27 @@ def self.require_core_component(name)
100117
div: Matestack::Ui::Core::Div::Div,
101118
dl: Matestack::Ui::Core::Dl::Dl,
102119
dt: Matestack::Ui::Core::Dt::Dt,
120+
em: Matestack::Ui::Core::Em::Em,
121+
fieldset: Matestack::Ui::Core::Fieldset::Fieldset,
122+
figure: Matestack::Ui::Core::Figure::Figure,
123+
footer: Matestack::Ui::Core::Footer::Footer,
124+
header: Matestack::Ui::Core::Header::Header,
103125
heading: Matestack::Ui::Core::Heading::Heading,
126+
hr: Matestack::Ui::Core::Hr::Hr,
127+
icon: Matestack::Ui::Core::Icon::Icon,
128+
italic: Matestack::Ui::Core::Icon::Icon, # alias icon as italic
129+
iframe: Matestack::Ui::Core::Iframe::Iframe,
130+
img: Matestack::Ui::Core::Img::Img,
131+
input: Matestack::Ui::Core::Input::Input,
132+
ins: Matestack::Ui::Core::Ins::Ins,
133+
kbd: Matestack::Ui::Core::Kbd::Kbd,
134+
label: Matestack::Ui::Core::Label::Label,
135+
legend: Matestack::Ui::Core::Legend::Legend,
136+
li: Matestack::Ui::Core::Li::Li,
104137
link: Matestack::Ui::Core::Link::Link,
105138
main: Matestack::Ui::Core::Main::Main,
106139
nav: Matestack::Ui::Core::Nav::Nav,
140+
ol: Matestack::Ui::Core::Ol::Ol,
107141
paragraph: Matestack::Ui::Core::Paragraph::Paragraph,
108142
plain: Matestack::Ui::Core::Plain::Plain,
109143
span: Matestack::Ui::Core::Span::Span,
@@ -116,6 +150,7 @@ def self.require_core_component(name)
116150
th: Matestack::Ui::Core::Th::Th,
117151
thead: Matestack::Ui::Core::Thead::Thead,
118152
tr: Matestack::Ui::Core::Tr::Tr,
153+
ul: Matestack::Ui::Core::Ul::Ul,
119154
form: Matestack::Ui::Core::Form::Form,
120155
form_input: Matestack::Ui::Core::Form::Input::Input,
121156
form_select: Matestack::Ui::Core::Form::Select::Select,

spec/0.8/components/em_spec.rb

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,54 +7,42 @@
77
it 'Example 1 - yield, no options[:text]' do
88
class ExamplePage < Matestack::Ui::Page
99
def response
10-
components do
11-
# simple em tag
12-
em do
13-
plain 'Emphasized text'
14-
end
15-
16-
# enhanced em tag
17-
em id: 'my-id', class: 'my-class' do
18-
plain 'Enhanced emphasized text'
19-
end
10+
# simple em tag
11+
em do
12+
plain 'Emphasized text'
13+
end
14+
# enhanced em tag
15+
em id: 'my-id', class: 'my-class' do
16+
plain 'Enhanced emphasized text'
2017
end
2118
end
2219
end
2320

2421
visit '/example'
25-
2622
static_output = page.html
27-
2823
expected_static_output = <<~HTML
2924
<em>Emphasized text</em>
3025
<em id="my-id" class="my-class">Enhanced emphasized text</em>
3126
HTML
32-
3327
expect(stripped(static_output)).to include(stripped(expected_static_output))
3428
end
3529

3630
it 'Example 2 - render options[:text]' do
3731
class ExamplePage < Matestack::Ui::Page
3832
def response
39-
components do
40-
# simple em
41-
em text: 'Emphasized text'
42-
43-
# enhanced em
44-
em id: 'my-id', class: 'my-class', text: 'Enhanced emphasized text'
45-
end
33+
# simple em
34+
em text: 'Emphasized text'
35+
# enhanced em
36+
em id: 'my-id', class: 'my-class', text: 'Enhanced emphasized text'
4637
end
4738
end
4839

4940
visit '/example'
50-
5141
static_output = page.html
52-
5342
expected_static_output = <<~HTML
5443
<em>Emphasized text</em>
5544
<em id="my-id" class="my-class">Enhanced emphasized text</em>
5645
HTML
57-
5846
expect(stripped(static_output)).to include(stripped(expected_static_output))
5947
end
6048
end

spec/0.8/components/fieldset_spec.rb

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,47 +5,38 @@
55
it 'fieldset with 1 input and legend' do
66
class ExamplePage < Matestack::Ui::Page
77
def response
8-
components {
9-
fieldset do
10-
legend text: 'input legend'
11-
input
12-
end
13-
14-
# advanced
15-
fieldset class: 'foo', id: 'world' do
16-
legend id: 'bar', class: 'hello', text: 'input legend'
17-
input
18-
end
19-
20-
# with disabled
21-
fieldset disabled: true do
22-
legend text: 'input legend'
23-
input
24-
end
25-
}
8+
fieldset do
9+
legend text: 'input legend'
10+
input
11+
end
12+
# advanced
13+
fieldset class: 'foo', id: 'world' do
14+
legend id: 'bar', class: 'hello', text: 'input legend'
15+
input
16+
end
17+
# with disabled
18+
fieldset disabled: true do
19+
legend text: 'input legend'
20+
input
21+
end
2622
end
2723
end
2824

2925
visit '/example'
30-
3126
static_output = page.html
32-
3327
expected_html_output = <<~HTML
3428
<fieldset>
3529
<legend>input legend</legend>
3630
<input/>
3731
</fieldset>
38-
3932
<fieldset id="world" class="foo">
4033
<legend id="bar" class="hello">input legend</legend>
4134
<input/>
4235
</fieldset>
43-
4436
<fieldset disabled="disabled">
4537
<legend>input legend</legend>
4638
<input/>
4739
</fieldset>
48-
4940
HTML
5041
expect(stripped(static_output)).to include(stripped(expected_html_output))
5142
end

spec/0.8/components/figure_spec.rb

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,19 @@
77

88
class ExamplePage < Matestack::Ui::Page
99
def response
10-
components {
11-
figure id: "my-id", class: "my-class" do
12-
img path: 'matestack-logo.png', width: 500, height: 300, alt: "logo"
13-
end
14-
}
10+
figure id: "my-id", class: "my-class" do
11+
img path: 'matestack-logo.png', width: 500, height: 300, alt: "logo"
12+
end
1513
end
1614
end
1715

1816
visit '/example'
19-
20-
expect(page).to have_xpath("//figure[@id='my-id' and @class='my-class']/img[contains(@src,'matestack-logo') and @alt='logo' and @width='500' and @height='300']")
17+
static_output = page.html
18+
expected_html_output = <<~HTML
19+
<figure id="my-id" class="my-class">
20+
<img alt="logo" height="300" src="#{ActionController::Base.helpers.asset_path('matestack-logo.png')}" width="500" />
21+
</figure>
22+
HTML
23+
expect(stripped(static_output)).to include(stripped(expected_html_output))
2124
end
2225
end

spec/0.8/components/footer_spec.rb

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,27 @@
44
describe 'Footer Component', type: :feature, js: true do
55

66
it 'Example 1' do
7-
87
class ExamplePage < Matestack::Ui::Page
9-
108
def response
11-
components {
12-
# simple footer tag
13-
footer do
14-
plain 'hello world!'
15-
end
16-
17-
# advanced footer tag
18-
footer id: 'my-unique-footer', class: 'awesome-footer' do
19-
paragraph class: 'footer-text', text: 'hello world!'
20-
end
21-
}
9+
# simple footer tag
10+
footer do
11+
plain 'hello world!'
12+
end
13+
# advanced footer tag
14+
footer id: 'my-unique-footer', class: 'awesome-footer' do
15+
paragraph class: 'footer-text', text: 'hello world!'
16+
end
2217
end
23-
2418
end
2519

2620
visit "/example"
27-
2821
static_output = page.html
29-
3022
expected_static_output = <<~HTML
3123
<footer>hello world!</footer>
3224
<footer id="my-unique-footer" class="awesome-footer">
3325
<p class="footer-text">hello world!</p>
3426
</footer>
3527
HTML
36-
3728
expect(stripped(static_output)).to include(stripped(expected_static_output))
3829
end
3930

spec/0.8/components/header_spec.rb

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,21 @@
44
describe "Header Component", type: :feature, js: true do
55

66
it "Example 1" do
7-
87
class ExamplePage < Matestack::Ui::Page
9-
108
def response
11-
components {
12-
header id: "my-id", class: "my-class" do
13-
plain "Hello World" #optional content
14-
end
15-
}
9+
header id: "my-id", class: "my-class" do
10+
plain "Hello World" #optional content
11+
end
1612
end
17-
1813
end
1914

2015
visit "/example"
21-
2216
static_output = page.html
23-
2417
expected_static_output = <<~HTML
25-
<header id="my-id" class="my-class">
26-
Hello World
27-
</header>
18+
<header id="my-id" class="my-class">
19+
Hello World
20+
</header>
2821
HTML
29-
3022
expect(stripped(static_output)).to include(stripped(expected_static_output))
3123
end
3224

0 commit comments

Comments
 (0)