twitter_bootstrap_markup 0.0.3 → 0.0.4
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.
- data/.gitignore +4 -4
- data/Gemfile +4 -4
- data/README.md +28 -28
- data/Rakefile +1 -1
- data/lib/twitter_bootstrap_markup.rb +52 -52
- data/lib/twitter_bootstrap_markup/add_on.rb +8 -8
- data/lib/twitter_bootstrap_markup/alert.rb +35 -35
- data/lib/twitter_bootstrap_markup/badge.rb +4 -4
- data/lib/twitter_bootstrap_markup/brand.rb +8 -8
- data/lib/twitter_bootstrap_markup/breadcrumb.rb +21 -21
- data/lib/twitter_bootstrap_markup/button.rb +16 -16
- data/lib/twitter_bootstrap_markup/button_base.rb +44 -44
- data/lib/twitter_bootstrap_markup/control_group.rb +25 -25
- data/lib/twitter_bootstrap_markup/divider.rb +29 -29
- data/lib/twitter_bootstrap_markup/dropdown_button.rb +58 -58
- data/lib/twitter_bootstrap_markup/dropdown_link.rb +29 -29
- data/lib/twitter_bootstrap_markup/extended_input.rb +10 -10
- data/lib/twitter_bootstrap_markup/extension/hash.rb +10 -10
- data/lib/twitter_bootstrap_markup/fieldset.rb +17 -17
- data/lib/twitter_bootstrap_markup/form.rb +26 -26
- data/lib/twitter_bootstrap_markup/grid_column.rb +13 -13
- data/lib/twitter_bootstrap_markup/grid_row.rb +8 -8
- data/lib/twitter_bootstrap_markup/help.rb +23 -23
- data/lib/twitter_bootstrap_markup/icon.rb +17 -17
- data/lib/twitter_bootstrap_markup/input.rb +24 -24
- data/lib/twitter_bootstrap_markup/input_size.rb +21 -21
- data/lib/twitter_bootstrap_markup/label.rb +4 -4
- data/lib/twitter_bootstrap_markup/label_base.rb +32 -32
- data/lib/twitter_bootstrap_markup/link.rb +16 -16
- data/lib/twitter_bootstrap_markup/link_button.rb +17 -17
- data/lib/twitter_bootstrap_markup/nav_bar.rb +33 -33
- data/lib/twitter_bootstrap_markup/nav_container.rb +9 -9
- data/lib/twitter_bootstrap_markup/nav_header.rb +8 -8
- data/lib/twitter_bootstrap_markup/nav_list.rb +15 -15
- data/lib/twitter_bootstrap_markup/nav_list_container.rb +9 -9
- data/lib/twitter_bootstrap_markup/nav_tab.rb +9 -9
- data/lib/twitter_bootstrap_markup/nav_tab_container.rb +12 -12
- data/lib/twitter_bootstrap_markup/page_header.rb +16 -16
- data/lib/twitter_bootstrap_markup/pagination.rb +28 -28
- data/lib/twitter_bootstrap_markup/popover.rb +19 -19
- data/lib/twitter_bootstrap_markup/progress_bar.rb +42 -42
- data/lib/twitter_bootstrap_markup/select.rb +54 -54
- data/lib/twitter_bootstrap_markup/side_position.rb +14 -14
- data/lib/twitter_bootstrap_markup/submit.rb +9 -9
- data/lib/twitter_bootstrap_markup/tab.rb +13 -13
- data/lib/twitter_bootstrap_markup/tab_content.rb +28 -28
- data/lib/twitter_bootstrap_markup/table.rb +28 -28
- data/lib/twitter_bootstrap_markup/tag.rb +62 -62
- data/lib/twitter_bootstrap_markup/tag_builder.rb +21 -21
- data/lib/twitter_bootstrap_markup/textarea.rb +14 -14
- data/lib/twitter_bootstrap_markup/tooltip.rb +18 -18
- data/lib/twitter_bootstrap_markup/ul_container.rb +27 -27
- data/lib/twitter_bootstrap_markup/version.rb +3 -3
- data/lib/twitter_bootstrap_markup/well.rb +27 -27
- data/markup/alerts.html +74 -74
- data/markup/badges.html +64 -64
- data/markup/breadcrumbs.html +58 -58
- data/markup/buttons.html +94 -94
- data/markup/control_groups.html +76 -76
- data/markup/css/bootstrap-responsive.css +815 -815
- data/markup/css/bootstrap-responsive.min.css +9 -9
- data/markup/css/bootstrap.css +4914 -4914
- data/markup/css/bootstrap.min.css +727 -727
- data/markup/dropdown_buttons.html +247 -247
- data/markup/dropdown_links.html +111 -111
- data/markup/form_fields.html +87 -87
- data/markup/forms.html +80 -80
- data/markup/grid_system.html +86 -86
- data/markup/index.html +38 -38
- data/markup/js/bootstrap.js +1835 -1835
- data/markup/js/bootstrap.min.js +6 -6
- data/markup/js/jquery-1.7.2.js +9402 -9402
- data/markup/labels.html +64 -64
- data/markup/link_buttons.html +94 -94
- data/markup/nav_bars.html +103 -103
- data/markup/nav_lists.html +53 -53
- data/markup/paginations.html +67 -67
- data/markup/popovers.html +55 -55
- data/markup/progress_bars.html +92 -92
- data/markup/selects.html +123 -123
- data/markup/tabs.html +45 -45
- data/markup/textareas.html +89 -89
- data/markup/textboxes.html +94 -94
- data/markup/tooltips.html +55 -55
- data/spec/add_on_spec.rb +9 -9
- data/spec/alert_spec.rb +77 -77
- data/spec/badge_spec.rb +40 -28
- data/spec/brand_spec.rb +9 -9
- data/spec/breadcrumb_spec.rb +32 -32
- data/spec/button_spec.rb +51 -51
- data/spec/control_group_spec.rb +28 -28
- data/spec/divider_spec.rb +16 -16
- data/spec/dropdown_button_spec.rb +100 -100
- data/spec/dropdown_link_spec.rb +47 -47
- data/spec/fieldset_spec.rb +21 -21
- data/spec/form_fields_spec.rb +70 -70
- data/spec/form_spec.rb +34 -34
- data/spec/grid_system_spec.rb +68 -68
- data/spec/help_spec.rb +12 -12
- data/spec/icon_spec.rb +17 -17
- data/spec/input_spec.rb +10 -10
- data/spec/label_spec.rb +40 -28
- data/spec/link_button_spec.rb +51 -51
- data/spec/link_spec.rb +28 -28
- data/spec/nav_bar_spec.rb +37 -37
- data/spec/nav_list_spec.rb +39 -39
- data/spec/page_header_spec.rb +12 -12
- data/spec/pagination_spec.rb +17 -17
- data/spec/popover_spec.rb +14 -14
- data/spec/progress_bar_spec.rb +52 -52
- data/spec/select_spec.rb +59 -59
- data/spec/spec_helper.rb +11 -11
- data/spec/support/helpers/html_helper.rb +10 -10
- data/spec/table_spec.rb +32 -32
- data/spec/tabs_spec.rb +21 -21
- data/spec/tag_builder_spec.rb +37 -37
- data/spec/tag_spec.rb +51 -51
- data/spec/text_area_spec.rb +42 -42
- data/spec/textbox_spec.rb +59 -59
- data/spec/tooltip_spec.rb +14 -14
- data/spec/well_spec.rb +16 -16
- data/twitter_bootstrap_markup.gemspec +25 -25
- metadata +25 -9
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class ControlGroup < Tag
|
|
3
|
-
TYPES = [:warning, :error, :success]
|
|
4
|
-
|
|
5
|
-
def initialize(label, attributes={}, &block)
|
|
6
|
-
super(:div, :class => 'control-group') do
|
|
7
|
-
append Tag.block(:label, label, attributes.prepend!(:class, 'control-label'))
|
|
8
|
-
append Tag.block(:div, :class => 'controls', &block)
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
TYPES.each do |type|
|
|
13
|
-
define_method type do
|
|
14
|
-
self.attributes.append!(:class, type)
|
|
15
|
-
self
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
TYPES.each do |type|
|
|
20
|
-
define_singleton_method type do |*args, &block|
|
|
21
|
-
self.new(*args, &block).send(type)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class ControlGroup < Tag
|
|
3
|
+
TYPES = [:warning, :error, :success]
|
|
4
|
+
|
|
5
|
+
def initialize(label, attributes={}, &block)
|
|
6
|
+
super(:div, :class => 'control-group') do
|
|
7
|
+
append Tag.block(:label, label, attributes.prepend!(:class, 'control-label'))
|
|
8
|
+
append Tag.block(:div, :class => 'controls', &block)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
TYPES.each do |type|
|
|
13
|
+
define_method type do
|
|
14
|
+
self.attributes.append!(:class, type)
|
|
15
|
+
self
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
TYPES.each do |type|
|
|
20
|
+
define_singleton_method type do |*args, &block|
|
|
21
|
+
self.new(*args, &block).send(type)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
26
|
end
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class Divider < Tag
|
|
3
|
-
|
|
4
|
-
def initialize(type)
|
|
5
|
-
case type
|
|
6
|
-
when :horizontal
|
|
7
|
-
super(:li, :class => 'divider') {}
|
|
8
|
-
when :vertical
|
|
9
|
-
super(:li, :class => 'divider-vertical') {}
|
|
10
|
-
when :breadcrumb
|
|
11
|
-
super(:span, '/', :class => 'divider') {}
|
|
12
|
-
else
|
|
13
|
-
raise "Invalid divider type [#{type}]"
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def self.horizontal
|
|
18
|
-
self.new :horizontal
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def self.vertical
|
|
22
|
-
self.new :vertical
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def self.breadcrumb
|
|
26
|
-
self.new :breadcrumb
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class Divider < Tag
|
|
3
|
+
|
|
4
|
+
def initialize(type)
|
|
5
|
+
case type
|
|
6
|
+
when :horizontal
|
|
7
|
+
super(:li, :class => 'divider') {}
|
|
8
|
+
when :vertical
|
|
9
|
+
super(:li, :class => 'divider-vertical') {}
|
|
10
|
+
when :breadcrumb
|
|
11
|
+
super(:span, '/', :class => 'divider') {}
|
|
12
|
+
else
|
|
13
|
+
raise "Invalid divider type [#{type}]"
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.horizontal
|
|
18
|
+
self.new :horizontal
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.vertical
|
|
22
|
+
self.new :vertical
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.breadcrumb
|
|
26
|
+
self.new :breadcrumb
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
30
|
end
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class DropdownButton < Tag
|
|
3
|
-
alias :internal_append :append
|
|
4
|
-
|
|
5
|
-
def initialize(text, &block)
|
|
6
|
-
super(:div, :class => 'btn-group') do
|
|
7
|
-
@button = internal_append(Button.new(:class => 'dropdown-toggle', 'data-toggle' => 'dropdown') do
|
|
8
|
-
append "#{text} "
|
|
9
|
-
append Tag.block :span, :class => 'caret'
|
|
10
|
-
end)
|
|
11
|
-
@ul = internal_append Tag.block(:ul, :class => 'dropdown-menu')
|
|
12
|
-
instance_eval &block if block_given?
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def append(element)
|
|
17
|
-
if element.is_a?(Tag) && element.name == :li
|
|
18
|
-
@ul.append element
|
|
19
|
-
else
|
|
20
|
-
@ul.append Tag.block(:li, element)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
ButtonBase::TYPES.each do |type|
|
|
25
|
-
define_method type do
|
|
26
|
-
@button.send(type)
|
|
27
|
-
self
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
ButtonBase::SIZES.each do |size|
|
|
32
|
-
define_method size do
|
|
33
|
-
@button.send(size)
|
|
34
|
-
self
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
ButtonBase::TYPES.each do |type|
|
|
39
|
-
define_singleton_method(type) do |*args, &block|
|
|
40
|
-
self.new(*args, &block).send(type)
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
ButtonBase::SIZES.each do |size|
|
|
45
|
-
define_singleton_method(size) do |*args, &block|
|
|
46
|
-
self.new(*args, &block).send(size)
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
ButtonBase::TYPES.each do |type|
|
|
51
|
-
ButtonBase::SIZES.each do |size|
|
|
52
|
-
define_singleton_method("#{type}_#{size}") do |*args, &block|
|
|
53
|
-
self.new(*args, &block).send(type).send(size)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class DropdownButton < Tag
|
|
3
|
+
alias :internal_append :append
|
|
4
|
+
|
|
5
|
+
def initialize(text, &block)
|
|
6
|
+
super(:div, :class => 'btn-group') do
|
|
7
|
+
@button = internal_append(Button.new(:class => 'dropdown-toggle', 'data-toggle' => 'dropdown') do
|
|
8
|
+
append "#{text} "
|
|
9
|
+
append Tag.block :span, :class => 'caret'
|
|
10
|
+
end)
|
|
11
|
+
@ul = internal_append Tag.block(:ul, :class => 'dropdown-menu')
|
|
12
|
+
instance_eval &block if block_given?
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def append(element)
|
|
17
|
+
if element.is_a?(Tag) && element.name == :li
|
|
18
|
+
@ul.append element
|
|
19
|
+
else
|
|
20
|
+
@ul.append Tag.block(:li, element)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
ButtonBase::TYPES.each do |type|
|
|
25
|
+
define_method type do
|
|
26
|
+
@button.send(type)
|
|
27
|
+
self
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
ButtonBase::SIZES.each do |size|
|
|
32
|
+
define_method size do
|
|
33
|
+
@button.send(size)
|
|
34
|
+
self
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
ButtonBase::TYPES.each do |type|
|
|
39
|
+
define_singleton_method(type) do |*args, &block|
|
|
40
|
+
self.new(*args, &block).send(type)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
ButtonBase::SIZES.each do |size|
|
|
45
|
+
define_singleton_method(size) do |*args, &block|
|
|
46
|
+
self.new(*args, &block).send(size)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
ButtonBase::TYPES.each do |type|
|
|
51
|
+
ButtonBase::SIZES.each do |size|
|
|
52
|
+
define_singleton_method("#{type}_#{size}") do |*args, &block|
|
|
53
|
+
self.new(*args, &block).send(type).send(size)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
59
|
end
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class DropdownLink < Tag
|
|
3
|
-
alias :internal_append :append
|
|
4
|
-
|
|
5
|
-
def initialize(text, &block)
|
|
6
|
-
super(:div, :class => 'dropdown') do
|
|
7
|
-
internal_append(Link.new('#', :class => 'dropdown-toggle', 'data-toggle' => 'dropdown') do
|
|
8
|
-
append "#{text} "
|
|
9
|
-
append Tag.block :span, :class => 'caret'
|
|
10
|
-
end)
|
|
11
|
-
@ul = internal_append Tag.block(:ul, :class => 'dropdown-menu')
|
|
12
|
-
instance_eval &block if block_given?
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def append(element)
|
|
17
|
-
if element.is_a?(Tag) && element.name == :li
|
|
18
|
-
@ul.append element
|
|
19
|
-
else
|
|
20
|
-
@ul.append Tag.block(:li, element)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def as_nav_item
|
|
25
|
-
@name = :li
|
|
26
|
-
self
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class DropdownLink < Tag
|
|
3
|
+
alias :internal_append :append
|
|
4
|
+
|
|
5
|
+
def initialize(text, &block)
|
|
6
|
+
super(:div, :class => 'dropdown') do
|
|
7
|
+
internal_append(Link.new('#', :class => 'dropdown-toggle', 'data-toggle' => 'dropdown') do
|
|
8
|
+
append "#{text} "
|
|
9
|
+
append Tag.block :span, :class => 'caret'
|
|
10
|
+
end)
|
|
11
|
+
@ul = internal_append Tag.block(:ul, :class => 'dropdown-menu')
|
|
12
|
+
instance_eval &block if block_given?
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def append(element)
|
|
17
|
+
if element.is_a?(Tag) && element.name == :li
|
|
18
|
+
@ul.append element
|
|
19
|
+
else
|
|
20
|
+
@ul.append Tag.block(:li, element)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def as_nav_item
|
|
25
|
+
@name = :li
|
|
26
|
+
self
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
30
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class ExtendedInput < Tag
|
|
3
|
-
|
|
4
|
-
def initialize(attributes={}, &block)
|
|
5
|
-
super(:div, attributes, &block)
|
|
6
|
-
attributes.append!(:class, 'input-prepend') unless children.first.is_a?(Input) && children.first.attributes[:type] == :text
|
|
7
|
-
attributes.append!(:class, 'input-append') unless children.last.is_a?(Input) && children.last.attributes[:type] == :text
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class ExtendedInput < Tag
|
|
3
|
+
|
|
4
|
+
def initialize(attributes={}, &block)
|
|
5
|
+
super(:div, attributes, &block)
|
|
6
|
+
attributes.append!(:class, 'input-prepend') unless children.first.is_a?(Input) && children.first.attributes[:type] == :text
|
|
7
|
+
attributes.append!(:class, 'input-append') unless children.last.is_a?(Input) && children.last.attributes[:type] == :text
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
end
|
|
11
11
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
class Hash
|
|
2
|
-
def prepend!(key, value)
|
|
3
|
-
self[key] = self.has_key?(key) ? "#{value} #{self[key]}" : value
|
|
4
|
-
self
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
def append!(key, value)
|
|
8
|
-
self[key] = self.has_key?(key) ? "#{self[key]} #{value}" : value
|
|
9
|
-
self
|
|
10
|
-
end
|
|
1
|
+
class Hash
|
|
2
|
+
def prepend!(key, value)
|
|
3
|
+
self[key] = self.has_key?(key) ? "#{value} #{self[key]}" : value
|
|
4
|
+
self
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def append!(key, value)
|
|
8
|
+
self[key] = self.has_key?(key) ? "#{self[key]} #{value}" : value
|
|
9
|
+
self
|
|
10
|
+
end
|
|
11
11
|
end
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class Fieldset < Tag
|
|
3
|
-
|
|
4
|
-
def initialize(*args, &block)
|
|
5
|
-
legend = args[0].is_a?(String) ? args.shift : nil
|
|
6
|
-
attributes = args.shift || {}
|
|
7
|
-
|
|
8
|
-
if block_given?
|
|
9
|
-
super(:fieldset, attributes, &block)
|
|
10
|
-
else
|
|
11
|
-
super(:fieldset, attributes) {}
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
prepend Tag.new(:legend, legend) if legend
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class Fieldset < Tag
|
|
3
|
+
|
|
4
|
+
def initialize(*args, &block)
|
|
5
|
+
legend = args[0].is_a?(String) ? args.shift : nil
|
|
6
|
+
attributes = args.shift || {}
|
|
7
|
+
|
|
8
|
+
if block_given?
|
|
9
|
+
super(:fieldset, attributes, &block)
|
|
10
|
+
else
|
|
11
|
+
super(:fieldset, attributes) {}
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
prepend Tag.new(:legend, legend) if legend
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
18
|
end
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class Form < Tag
|
|
3
|
-
TYPES = [:vertical, :inline, :search, :horizontal]
|
|
4
|
-
|
|
5
|
-
def initialize(attributes={}, &block)
|
|
6
|
-
if block_given?
|
|
7
|
-
super(:form, attributes, &block)
|
|
8
|
-
else
|
|
9
|
-
super(:form, attributes) {}
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
TYPES.each do |type|
|
|
14
|
-
define_method(type) do
|
|
15
|
-
attributes.append!(:class, "form-#{type}") unless type == :vertical
|
|
16
|
-
self
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
TYPES.each do |type|
|
|
21
|
-
define_singleton_method(type) do |*args, &block|
|
|
22
|
-
self.new(*args, &block).send(type)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class Form < Tag
|
|
3
|
+
TYPES = [:vertical, :inline, :search, :horizontal]
|
|
4
|
+
|
|
5
|
+
def initialize(attributes={}, &block)
|
|
6
|
+
if block_given?
|
|
7
|
+
super(:form, attributes, &block)
|
|
8
|
+
else
|
|
9
|
+
super(:form, attributes) {}
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
TYPES.each do |type|
|
|
14
|
+
define_method(type) do
|
|
15
|
+
attributes.append!(:class, "form-#{type}") unless type == :vertical
|
|
16
|
+
self
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
TYPES.each do |type|
|
|
21
|
+
define_singleton_method(type) do |*args, &block|
|
|
22
|
+
self.new(*args, &block).send(type)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
27
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class GridColumn < Tag
|
|
3
|
-
|
|
4
|
-
def initialize(*args, &block)
|
|
5
|
-
size = args.shift
|
|
6
|
-
offset = args.shift if args.first.is_a?(Fixnum)
|
|
7
|
-
attributes = args.shift || {}
|
|
8
|
-
attributes.prepend!(:class, "span#{size}")
|
|
9
|
-
attributes.append!(:class, "offset#{offset}") if offset
|
|
10
|
-
super(:div, attributes, &block)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class GridColumn < Tag
|
|
3
|
+
|
|
4
|
+
def initialize(*args, &block)
|
|
5
|
+
size = args.shift
|
|
6
|
+
offset = args.shift if args.first.is_a?(Fixnum)
|
|
7
|
+
attributes = args.shift || {}
|
|
8
|
+
attributes.prepend!(:class, "span#{size}")
|
|
9
|
+
attributes.append!(:class, "offset#{offset}") if offset
|
|
10
|
+
super(:div, attributes, &block)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
14
|
end
|