twitter_bootstrap_markup 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/lib/twitter_bootstrap_markup.rb +45 -0
- data/lib/twitter_bootstrap_markup/add_on.rb +9 -0
- data/lib/twitter_bootstrap_markup/alert.rb +35 -0
- data/lib/twitter_bootstrap_markup/badge.rb +4 -0
- data/lib/twitter_bootstrap_markup/brand.rb +9 -0
- data/lib/twitter_bootstrap_markup/breadcrumb.rb +21 -0
- data/lib/twitter_bootstrap_markup/button.rb +16 -0
- data/lib/twitter_bootstrap_markup/button_base.rb +41 -0
- data/lib/twitter_bootstrap_markup/control_group.rb +26 -0
- data/lib/twitter_bootstrap_markup/divider.rb +30 -0
- data/lib/twitter_bootstrap_markup/dropdown_button.rb +59 -0
- data/lib/twitter_bootstrap_markup/extended_input.rb +11 -0
- data/lib/twitter_bootstrap_markup/extension/hash.rb +11 -0
- data/lib/twitter_bootstrap_markup/fieldset.rb +18 -0
- data/lib/twitter_bootstrap_markup/form.rb +27 -0
- data/lib/twitter_bootstrap_markup/grid_column.rb +14 -0
- data/lib/twitter_bootstrap_markup/grid_row.rb +9 -0
- data/lib/twitter_bootstrap_markup/help.rb +24 -0
- data/lib/twitter_bootstrap_markup/icon.rb +18 -0
- data/lib/twitter_bootstrap_markup/input.rb +31 -0
- data/lib/twitter_bootstrap_markup/label.rb +4 -0
- data/lib/twitter_bootstrap_markup/label_base.rb +29 -0
- data/lib/twitter_bootstrap_markup/link.rb +17 -0
- data/lib/twitter_bootstrap_markup/link_button.rb +17 -0
- data/lib/twitter_bootstrap_markup/nav_bar.rb +32 -0
- data/lib/twitter_bootstrap_markup/nav_container.rb +10 -0
- data/lib/twitter_bootstrap_markup/nav_header.rb +9 -0
- data/lib/twitter_bootstrap_markup/nav_list.rb +11 -0
- data/lib/twitter_bootstrap_markup/nav_list_container.rb +10 -0
- data/lib/twitter_bootstrap_markup/nav_tab.rb +10 -0
- data/lib/twitter_bootstrap_markup/nav_tab_container.rb +13 -0
- data/lib/twitter_bootstrap_markup/page_header.rb +17 -0
- data/lib/twitter_bootstrap_markup/pagination.rb +29 -0
- data/lib/twitter_bootstrap_markup/popover.rb +20 -0
- data/lib/twitter_bootstrap_markup/progress_bar.rb +43 -0
- data/lib/twitter_bootstrap_markup/select.rb +67 -0
- data/lib/twitter_bootstrap_markup/side_position.rb +15 -0
- data/lib/twitter_bootstrap_markup/submit.rb +10 -0
- data/lib/twitter_bootstrap_markup/tab.rb +14 -0
- data/lib/twitter_bootstrap_markup/tab_content.rb +29 -0
- data/lib/twitter_bootstrap_markup/table.rb +28 -0
- data/lib/twitter_bootstrap_markup/tag.rb +51 -0
- data/lib/twitter_bootstrap_markup/tooltip.rb +19 -0
- data/lib/twitter_bootstrap_markup/ul_container.rb +21 -0
- data/lib/twitter_bootstrap_markup/version.rb +3 -0
- data/lib/twitter_bootstrap_markup/well.rb +27 -0
- data/markup/alerts.html +75 -0
- data/markup/badges.html +65 -0
- data/markup/breadcrumbs.html +59 -0
- data/markup/buttons.html +95 -0
- data/markup/control_groups.html +77 -0
- data/markup/css/bootstrap-responsive.css +815 -0
- data/markup/css/bootstrap-responsive.min.css +9 -0
- data/markup/css/bootstrap.css +4983 -0
- data/markup/css/bootstrap.min.css +9 -0
- data/markup/dropdown_buttons.html +248 -0
- data/markup/form_fields.html +88 -0
- data/markup/forms.html +81 -0
- data/markup/grid_system.html +87 -0
- data/markup/img/glyphicons-halflings-white.png +0 -0
- data/markup/img/glyphicons-halflings.png +0 -0
- data/markup/index.html +37 -0
- data/markup/js/bootstrap.js +1825 -0
- data/markup/js/bootstrap.min.js +6 -0
- data/markup/js/jquery-1.7.2.js +9402 -0
- data/markup/labels.html +65 -0
- data/markup/link_buttons.html +95 -0
- data/markup/nav_bars.html +104 -0
- data/markup/nav_lists.html +54 -0
- data/markup/paginations.html +68 -0
- data/markup/popovers.html +56 -0
- data/markup/progress_bars.html +93 -0
- data/markup/selects.html +124 -0
- data/markup/tabs.html +46 -0
- data/markup/textboxes.html +95 -0
- data/markup/tooltips.html +56 -0
- data/spec/add_on_spec.rb +10 -0
- data/spec/alert_spec.rb +77 -0
- data/spec/badge_spec.rb +29 -0
- data/spec/brand_spec.rb +10 -0
- data/spec/breadcrumb_spec.rb +32 -0
- data/spec/button_spec.rb +52 -0
- data/spec/control_group_spec.rb +29 -0
- data/spec/divider_spec.rb +17 -0
- data/spec/dropdown_button_spec.rb +101 -0
- data/spec/fieldset_spec.rb +22 -0
- data/spec/form_fields_spec.rb +71 -0
- data/spec/form_spec.rb +35 -0
- data/spec/grid_system_spec.rb +69 -0
- data/spec/help_spec.rb +13 -0
- data/spec/icon_spec.rb +18 -0
- data/spec/input_spec.rb +11 -0
- data/spec/label_spec.rb +29 -0
- data/spec/link_button_spec.rb +52 -0
- data/spec/link_spec.rb +29 -0
- data/spec/nav_bar_spec.rb +27 -0
- data/spec/nav_list_spec.rb +27 -0
- data/spec/page_header_spec.rb +13 -0
- data/spec/pagination_spec.rb +18 -0
- data/spec/popover_spec.rb +15 -0
- data/spec/progress_bar_spec.rb +53 -0
- data/spec/select_spec.rb +61 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/support/helpers/html_helper.rb +11 -0
- data/spec/table_spec.rb +29 -0
- data/spec/tabs_spec.rb +22 -0
- data/spec/tag_spec.rb +40 -0
- data/spec/textbox_spec.rb +60 -0
- data/spec/tooltip_spec.rb +15 -0
- data/spec/well_spec.rb +17 -0
- data/twitter_bootstrap_markup.gemspec +23 -0
- metadata +182 -0
data/spec/help_spec.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Help do
|
4
|
+
|
5
|
+
it 'inline' do
|
6
|
+
Help.inline('Shown to the right of the field').to_s.should eq '<span class="help-inline">Shown to the right of the field</span>'
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'block' do
|
10
|
+
Help.block('Shown below the field').to_s.should eq '<p class="help-block">Shown below the field</p>'
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
data/spec/icon_spec.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Icon do
|
4
|
+
|
5
|
+
it 'simple' do
|
6
|
+
Icon.new('search').to_s.should eq '<i class="icon-search"></i>'
|
7
|
+
Icon.new('file').to_s.should eq '<i class="icon-file"></i>'
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'white' do
|
11
|
+
Icon.new('search').white.to_s.should eq '<i class="icon-search icon-white"></i>'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'white constructor' do
|
15
|
+
Icon.white('search').to_s.should eq Icon.new('search').white.to_s
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/spec/input_spec.rb
ADDED
data/spec/label_spec.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Label do
|
4
|
+
|
5
|
+
context 'Types' do
|
6
|
+
|
7
|
+
it 'default' do
|
8
|
+
Label.new('Default').to_s.should eq HtmlHelper.html_for('labels', "#default span")
|
9
|
+
end
|
10
|
+
|
11
|
+
LabelBase::TYPES.each do |type|
|
12
|
+
it type do
|
13
|
+
Label.new(type.to_s.capitalize).send(type).to_s.should eq HtmlHelper.html_for('labels', "##{type} span")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'Constructors' do
|
20
|
+
|
21
|
+
LabelBase::TYPES.each do |type|
|
22
|
+
it type do
|
23
|
+
Label.send(type, type.to_s.capitalize).to_s.should eq Label.new(type.to_s.capitalize).send(type).to_s
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LinkButton do
|
4
|
+
|
5
|
+
context 'Types' do
|
6
|
+
it 'default' do
|
7
|
+
LinkButton.new('Click me', '#').to_s.should eq HtmlHelper.html_for('link_buttons', "#default a")
|
8
|
+
end
|
9
|
+
|
10
|
+
LinkButton::TYPES.each do |type|
|
11
|
+
it type do
|
12
|
+
LinkButton.new('Click me', '#').send(type).to_s.should eq HtmlHelper.html_for('link_buttons', "##{type} a")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'Sizes' do
|
18
|
+
LinkButton::SIZES.each do |size|
|
19
|
+
it size do
|
20
|
+
LinkButton.new('Click me', '#').send(size).to_s.should eq HtmlHelper.html_for('link_buttons', "##{size} a")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'Mixed' do
|
26
|
+
LinkButton.new('Click me', '#').primary.large.to_s.should eq HtmlHelper.html_for('link_buttons', "#mixed a")
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'Constructors' do
|
30
|
+
|
31
|
+
LinkButton::TYPES.each do |type|
|
32
|
+
it type do
|
33
|
+
LinkButton.send(type, 'Click me', '#').to_s.should eq LinkButton.new('Click me', '#').send(type).to_s
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
LinkButton::SIZES.each do |size|
|
38
|
+
it size do
|
39
|
+
LinkButton.send(size, 'Click me', '#').to_s.should eq LinkButton.new('Click me', '#').send(size).to_s
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
LinkButton::TYPES.each do |type|
|
44
|
+
LinkButton::SIZES.each do |size|
|
45
|
+
it "#{type}_#{size}" do
|
46
|
+
LinkButton.send("#{type}_#{size}", 'Click me', '#').to_s.should eq LinkButton.new('Click me', '#').send(type).send(size).to_s
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
data/spec/link_spec.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Link do
|
4
|
+
|
5
|
+
it 'text and url' do
|
6
|
+
Link.new('text', 'url').to_s.should eq '<a href="url">text</a>'
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'text and url with aditional attributes' do
|
10
|
+
Link.new('text', 'url', :title => 'link').to_s.should eq '<a href="url" title="link">text</a>'
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'url and block' do
|
14
|
+
Link.new('url') { append Tag.block(:strong) { append 'text' } }.to_s.should eq '<a href="url"><strong>text</strong></a>'
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'url and block with aditional attributes' do
|
18
|
+
Link.new('url', :title => 'link') { append Tag.block(:strong) { append 'text' } }.to_s.should eq '<a href="url" title="link"><strong>text</strong></a>'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'url, image and text' do
|
22
|
+
tag = Link.new('url') do
|
23
|
+
append Icon.new('search')
|
24
|
+
append 'Search'
|
25
|
+
end
|
26
|
+
tag.to_s.should eq '<a href="url"><i class="icon-search"></i>Search</a>'
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NavBar do
|
4
|
+
|
5
|
+
[:default, :top, :bottom].each do |type|
|
6
|
+
it type do
|
7
|
+
tag = NavBar.send(type == :default ? :new : type) do
|
8
|
+
append Brand.new 'Brand', '#'
|
9
|
+
append do
|
10
|
+
NavContainer.new do
|
11
|
+
append Divider.vertical
|
12
|
+
append Link.new('Link 1', '#'), :active
|
13
|
+
append Link.new('Link 2', '#')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
append do
|
17
|
+
NavContainer.new do
|
18
|
+
append Link.new('#') { append Icon.white('off', :title => 'logout') }
|
19
|
+
end.pull_right
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
tag.to_s.should eq HtmlHelper.html_for('nav_bars', "##{type} .navbar")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NavList do
|
4
|
+
|
5
|
+
it 'default' do
|
6
|
+
tag = NavList.new do
|
7
|
+
append NavHeader.new 'Title'
|
8
|
+
append do
|
9
|
+
Link.new('#') do
|
10
|
+
append Icon.new('search')
|
11
|
+
append 'Search'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
append do
|
15
|
+
Link.new('#') do
|
16
|
+
append Icon.new('file')
|
17
|
+
append 'New'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
append Divider.horizontal
|
21
|
+
append 'Help'
|
22
|
+
end
|
23
|
+
|
24
|
+
tag.to_s.should eq HtmlHelper.html_for('nav_lists', "#default div")
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe PageHeader do
|
4
|
+
|
5
|
+
it 'title' do
|
6
|
+
PageHeader.new('Page Title').to_s.should eq '<div class="page-header"><h1>Page Title</h1></div>'
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'title and subtitle' do
|
10
|
+
PageHeader.new('Page Title', 'Subtitle').to_s.should eq '<div class="page-header"><h1>Page Title<small>Subtitle</small></h1></div>'
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Pagination do
|
4
|
+
|
5
|
+
[:default, :centered, :right].each do |position|
|
6
|
+
it position do
|
7
|
+
tag = Pagination.send(position == :default ? :new : position) do
|
8
|
+
append Tag.new(:a) { append 'Prev' }, :active
|
9
|
+
append Tag.new(:a) { append 1 }, :active
|
10
|
+
append Link.new(2, '#')
|
11
|
+
append Link.new('Next', '#')
|
12
|
+
end
|
13
|
+
|
14
|
+
tag.to_s.should eq HtmlHelper.html_for('paginations', "##{position} .pagination")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Popover do
|
4
|
+
|
5
|
+
it 'default' do
|
6
|
+
Link.new('advanced', '#').popover('Title popover', 'This is a full explanation').to_s.should eq HtmlHelper.html_for('popovers', "#default a")
|
7
|
+
end
|
8
|
+
|
9
|
+
Tooltip::POSITIONS.reject { |p| p ==:right }.each do |position|
|
10
|
+
it position do
|
11
|
+
Link.new('advanced', '#').send("popover_#{position}", 'Title popover', 'This is a full explanation').to_s.should eq HtmlHelper.html_for('popovers', "##{position} a")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ProgressBar do
|
4
|
+
|
5
|
+
context 'Types' do
|
6
|
+
|
7
|
+
it 'default' do
|
8
|
+
ProgressBar.new(30).to_s.should eq HtmlHelper.html_for('progress_bars', "#default .progress")
|
9
|
+
end
|
10
|
+
|
11
|
+
ProgressBar::TYPES.each do |type|
|
12
|
+
it type do
|
13
|
+
ProgressBar.new(60).send(type).to_s.should eq HtmlHelper.html_for('progress_bars', "##{type} .progress")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'Display' do
|
20
|
+
|
21
|
+
it 'striped' do
|
22
|
+
ProgressBar.new(60).striped.to_s.should eq HtmlHelper.html_for('progress_bars', "#striped .progress")
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'striped animated' do
|
26
|
+
ProgressBar.new(60).striped_animated.to_s.should eq HtmlHelper.html_for('progress_bars', "#animated .progress")
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'mixed' do
|
30
|
+
ProgressBar.info(60).striped.to_s.should eq HtmlHelper.html_for('progress_bars', "#mixed .progress")
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'Constructors' do
|
36
|
+
|
37
|
+
ProgressBar::TYPES.each do |type|
|
38
|
+
it type do
|
39
|
+
ProgressBar.send(type, 60).to_s.should eq ProgressBar.new(60).send(type).to_s
|
40
|
+
end
|
41
|
+
|
42
|
+
it "#{type}_striped" do
|
43
|
+
ProgressBar.send("#{type}_striped", 60).to_s.should eq ProgressBar.new(60).send(type).striped.to_s
|
44
|
+
end
|
45
|
+
|
46
|
+
it "#{type}_striped_animated" do
|
47
|
+
ProgressBar.send("#{type}_striped_animated", 60).to_s.should eq ProgressBar.new(60).send(type).striped_animated.to_s
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
data/spec/select_spec.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Select do
|
4
|
+
|
5
|
+
context 'Options' do
|
6
|
+
|
7
|
+
it 'empty' do
|
8
|
+
Select.new([], :id => 'empty_select').to_s.should eq HtmlHelper.html_for('selects', "#empty select")
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'array options' do
|
12
|
+
Select.new([1, 2], :id => 'array_select').to_s.should eq HtmlHelper.html_for('selects', "#array select")
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'hash options' do
|
16
|
+
Select.new({:option1 => 1, :option2 => 2}, :id => 'hash_select').to_s.should eq HtmlHelper.html_for('selects', "#hash select")
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'hash options group' do
|
20
|
+
options = {
|
21
|
+
:group1 => [1, 2],
|
22
|
+
:group2 => {
|
23
|
+
:optionA => 'A',
|
24
|
+
:optionB => 'B'
|
25
|
+
}
|
26
|
+
}
|
27
|
+
puts Select.new(options, :id => 'group_select').to_s
|
28
|
+
Select.new(options, :id => 'group_select').to_s.should eq HtmlHelper.html_for('selects', "#group select")
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'selected value' do
|
32
|
+
Select.new([1, 2, 3], :selected_value => 2, :id => 'selected_select').to_s.should eq HtmlHelper.html_for('selects', "#selected select")
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'prompt' do
|
36
|
+
Select.new([1, 2], :prompt => '[Select option]', :id => 'prompt_select').to_s.should eq HtmlHelper.html_for('selects', "#prompt select")
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'Sizes' do
|
42
|
+
|
43
|
+
Select::SIZES.each do |size|
|
44
|
+
it size do
|
45
|
+
Select.new.send(size).to_s.should eq HtmlHelper.html_for('selects', "##{size} select")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'Constructors' do
|
52
|
+
|
53
|
+
Select::SIZES.each do |size|
|
54
|
+
it size do
|
55
|
+
Select.send(size).to_s.should eq Select.new.send(size).to_s
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
class HtmlHelper
|
2
|
+
def self.load(file_name)
|
3
|
+
Nokogiri::HTML(File.open("../markup/#{file_name}.html", 'r'){|f| f.readlines.join("\n")})
|
4
|
+
end
|
5
|
+
|
6
|
+
def self.html_for(file_name, css_path)
|
7
|
+
load(file_name).css(css_path).to_s.split(/\n/).inject do |result, line|
|
8
|
+
(result || '') << line.lstrip
|
9
|
+
end.gsub('&', '&')
|
10
|
+
end
|
11
|
+
end
|
data/spec/table_spec.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Table do
|
4
|
+
|
5
|
+
context 'Types' do
|
6
|
+
|
7
|
+
it 'default' do
|
8
|
+
Table.new.to_s.should eq '<table class="table"></table>'
|
9
|
+
end
|
10
|
+
|
11
|
+
Table::TYPES.each do |type|
|
12
|
+
it type do
|
13
|
+
Table.new.send(type).to_s.should eq "<table class=\"table table-#{type}\"></table>"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'Constructors' do
|
20
|
+
|
21
|
+
Table::TYPES.each do |type|
|
22
|
+
it type do
|
23
|
+
Table.send(type).to_s.should eq Table.new.send(type).to_s
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|