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,10 +1,10 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class Submit < Button
|
|
3
|
-
|
|
4
|
-
def initialize(*args, &block)
|
|
5
|
-
super(*args, &block)
|
|
6
|
-
attributes[:type] = 'submit'
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class Submit < Button
|
|
3
|
+
|
|
4
|
+
def initialize(*args, &block)
|
|
5
|
+
super(*args, &block)
|
|
6
|
+
attributes[:type] = 'submit'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
end
|
|
10
10
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class Tab < Tag
|
|
3
|
-
attr_reader :nav
|
|
4
|
-
attr_reader :content
|
|
5
|
-
|
|
6
|
-
def initialize(attributes={}, &block)
|
|
7
|
-
super(:div, attributes.prepend!(:class, 'tab')) {}
|
|
8
|
-
@nav = append NavTabContainer.new
|
|
9
|
-
@content = append TabContent.new
|
|
10
|
-
instance_eval &block if block_given?
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class Tab < Tag
|
|
3
|
+
attr_reader :nav
|
|
4
|
+
attr_reader :content
|
|
5
|
+
|
|
6
|
+
def initialize(attributes={}, &block)
|
|
7
|
+
super(:div, attributes.prepend!(:class, 'tab')) {}
|
|
8
|
+
@nav = append NavTabContainer.new
|
|
9
|
+
@content = append TabContent.new
|
|
10
|
+
instance_eval &block if block_given?
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
14
|
end
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class TabContent < Tag
|
|
3
|
-
alias :internal_append :append
|
|
4
|
-
|
|
5
|
-
def initialize(attributes={}, &block)
|
|
6
|
-
if block_given?
|
|
7
|
-
super(:div, attributes.prepend!(:class, 'tab-content'), &block)
|
|
8
|
-
else
|
|
9
|
-
super(:div, attributes.prepend!(:class, 'tab-content')) {}
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def append(*args, &block)
|
|
14
|
-
id = args.shift
|
|
15
|
-
element = block_given? ? instance_eval(&block) : args.shift
|
|
16
|
-
mode = args.shift || :inactive
|
|
17
|
-
|
|
18
|
-
if element.is_a?(Tag) && element.name == :div && element.attributes[:class].include?('tab-pane')
|
|
19
|
-
element.attributes[:id] = id
|
|
20
|
-
element.attributes.append!(:class, 'active') if mode == :active
|
|
21
|
-
internal_append element
|
|
22
|
-
else
|
|
23
|
-
attributes = {:class => 'tab-pane', :id => id}
|
|
24
|
-
attributes.append!(:class, :active) if mode == :active
|
|
25
|
-
internal_append Tag.block(:div, element, attributes)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class TabContent < Tag
|
|
3
|
+
alias :internal_append :append
|
|
4
|
+
|
|
5
|
+
def initialize(attributes={}, &block)
|
|
6
|
+
if block_given?
|
|
7
|
+
super(:div, attributes.prepend!(:class, 'tab-content'), &block)
|
|
8
|
+
else
|
|
9
|
+
super(:div, attributes.prepend!(:class, 'tab-content')) {}
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def append(*args, &block)
|
|
14
|
+
id = args.shift
|
|
15
|
+
element = block_given? ? instance_eval(&block) : args.shift
|
|
16
|
+
mode = args.shift || :inactive
|
|
17
|
+
|
|
18
|
+
if element.is_a?(Tag) && element.name == :div && element.attributes[:class].include?('tab-pane')
|
|
19
|
+
element.attributes[:id] = id
|
|
20
|
+
element.attributes.append!(:class, 'active') if mode == :active
|
|
21
|
+
internal_append element
|
|
22
|
+
else
|
|
23
|
+
attributes = {:class => 'tab-pane', :id => id}
|
|
24
|
+
attributes.append!(:class, :active) if mode == :active
|
|
25
|
+
internal_append Tag.block(:div, element, attributes)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
29
|
end
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class Table < Tag
|
|
3
|
-
TYPES = [:bordered, :striped, :condensed]
|
|
4
|
-
|
|
5
|
-
def initialize(attributes={}, &block)
|
|
6
|
-
attributes.prepend!(:class, 'table')
|
|
7
|
-
if block_given?
|
|
8
|
-
super(:table, attributes, &block)
|
|
9
|
-
else
|
|
10
|
-
super(:table, attributes) {}
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
TYPES.each do |type|
|
|
15
|
-
define_method type do |&block|
|
|
16
|
-
attributes.append!(:class, "table-#{type}")
|
|
17
|
-
instance_eval &block if block
|
|
18
|
-
self
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
TYPES.each do |type|
|
|
23
|
-
define_singleton_method type do |*args, &block|
|
|
24
|
-
self.new(*args, &block).send(type)
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class Table < Tag
|
|
3
|
+
TYPES = [:bordered, :striped, :condensed]
|
|
4
|
+
|
|
5
|
+
def initialize(attributes={}, &block)
|
|
6
|
+
attributes.prepend!(:class, 'table')
|
|
7
|
+
if block_given?
|
|
8
|
+
super(:table, attributes, &block)
|
|
9
|
+
else
|
|
10
|
+
super(:table, attributes) {}
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
TYPES.each do |type|
|
|
15
|
+
define_method type do |&block|
|
|
16
|
+
attributes.append!(:class, "table-#{type}")
|
|
17
|
+
instance_eval &block if block
|
|
18
|
+
self
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
TYPES.each do |type|
|
|
23
|
+
define_singleton_method type do |*args, &block|
|
|
24
|
+
self.new(*args, &block).send(type)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
29
|
end
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class Tag
|
|
3
|
-
include Tooltip
|
|
4
|
-
include Popover
|
|
5
|
-
include SidePosition
|
|
6
|
-
|
|
7
|
-
attr_reader :name
|
|
8
|
-
attr_reader :attributes
|
|
9
|
-
attr_reader :children
|
|
10
|
-
|
|
11
|
-
def self.inline(name, attributes={})
|
|
12
|
-
Tag.new(name, attributes)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def self.block(*args, &block)
|
|
16
|
-
if block_given?
|
|
17
|
-
Tag.new(*args, &block)
|
|
18
|
-
else
|
|
19
|
-
Tag.new(*args) {}
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def initialize(*args, &block)
|
|
24
|
-
@name = args.shift
|
|
25
|
-
content = args.shift unless args.first.is_a?(Hash)
|
|
26
|
-
@attributes = args.shift || {}
|
|
27
|
-
@children = []
|
|
28
|
-
@is_block = content || block_given?
|
|
29
|
-
append content if content
|
|
30
|
-
evaluate(&block) if block_given?
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def append(element=nil, &block)
|
|
34
|
-
element = evaluate(&block) if block_given?
|
|
35
|
-
@children << element
|
|
36
|
-
element
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def prepend(element)
|
|
40
|
-
@children.insert 0, element
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def to_s
|
|
44
|
-
attributes_markup = attributes.empty? ? '' : " #{attributes.map{|key, value| "#{key}#{value ? "=\"#{value}\"" : ''}"}.join(' ')}"
|
|
45
|
-
if @is_block
|
|
46
|
-
"<#{name}#{attributes_markup}>#{children.map(&:to_s).join}</#{name}>"
|
|
47
|
-
else
|
|
48
|
-
"<#{name}#{attributes_markup}>"
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
private
|
|
53
|
-
|
|
54
|
-
def evaluate(&block)
|
|
55
|
-
if block.arity == 0
|
|
56
|
-
element = instance_eval(&block)
|
|
57
|
-
else
|
|
58
|
-
element = block.call(self)
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class Tag
|
|
3
|
+
include Tooltip
|
|
4
|
+
include Popover
|
|
5
|
+
include SidePosition
|
|
6
|
+
|
|
7
|
+
attr_reader :name
|
|
8
|
+
attr_reader :attributes
|
|
9
|
+
attr_reader :children
|
|
10
|
+
|
|
11
|
+
def self.inline(name, attributes={})
|
|
12
|
+
Tag.new(name, attributes)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.block(*args, &block)
|
|
16
|
+
if block_given?
|
|
17
|
+
Tag.new(*args, &block)
|
|
18
|
+
else
|
|
19
|
+
Tag.new(*args) {}
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def initialize(*args, &block)
|
|
24
|
+
@name = args.shift
|
|
25
|
+
content = args.shift unless args.first.is_a?(Hash)
|
|
26
|
+
@attributes = args.shift || {}
|
|
27
|
+
@children = []
|
|
28
|
+
@is_block = content || block_given?
|
|
29
|
+
append content if content
|
|
30
|
+
evaluate(&block) if block_given?
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def append(element=nil, &block)
|
|
34
|
+
element = evaluate(&block) if block_given?
|
|
35
|
+
@children << element
|
|
36
|
+
element
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def prepend(element)
|
|
40
|
+
@children.insert 0, element
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def to_s
|
|
44
|
+
attributes_markup = attributes.empty? ? '' : " #{attributes.map{|key, value| "#{key}#{value ? "=\"#{value}\"" : ''}"}.join(' ')}"
|
|
45
|
+
if @is_block
|
|
46
|
+
"<#{name}#{attributes_markup}>#{children.map(&:to_s).join}</#{name}>"
|
|
47
|
+
else
|
|
48
|
+
"<#{name}#{attributes_markup}>"
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
private
|
|
53
|
+
|
|
54
|
+
def evaluate(&block)
|
|
55
|
+
if block.arity == 0
|
|
56
|
+
element = instance_eval(&block)
|
|
57
|
+
else
|
|
58
|
+
element = block.call(self)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
63
|
end
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
module TagBuilder
|
|
3
|
-
|
|
4
|
-
def self.class_of(constant)
|
|
5
|
-
"TwitterBootstrapMarkup::#{constant}".safe_constantize
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
TwitterBootstrapMarkup.constants.select { |c| class_of(c).is_a?(Class) }.each do |constant|
|
|
9
|
-
tag_class = class_of(constant)
|
|
10
|
-
define_singleton_method constant.to_s.underscore do |*args, &block|
|
|
11
|
-
tag_class.new(*args, &block)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
(tag_class.methods - Object.methods).each do |method|
|
|
15
|
-
define_singleton_method "#{constant.to_s.underscore}_#{method}" do |*args, &block|
|
|
16
|
-
tag_class.send(method, *args, &block)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
module TagBuilder
|
|
3
|
+
|
|
4
|
+
def self.class_of(constant)
|
|
5
|
+
"TwitterBootstrapMarkup::#{constant}".safe_constantize
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
TwitterBootstrapMarkup.constants.select { |c| class_of(c).is_a?(Class) }.each do |constant|
|
|
9
|
+
tag_class = class_of(constant)
|
|
10
|
+
define_singleton_method constant.to_s.underscore do |*args, &block|
|
|
11
|
+
tag_class.new(*args, &block)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
(tag_class.methods - Object.methods).each do |method|
|
|
15
|
+
define_singleton_method "#{constant.to_s.underscore}_#{method}" do |*args, &block|
|
|
16
|
+
tag_class.send(method, *args, &block)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
22
|
end
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class Textarea < Tag
|
|
3
|
-
extend InputSize::ClassMethods
|
|
4
|
-
include InputSize::InstanceMethods
|
|
5
|
-
|
|
6
|
-
def initialize(*args, &block)
|
|
7
|
-
if block_given?
|
|
8
|
-
super(:textarea, *args, &block)
|
|
9
|
-
else
|
|
10
|
-
super(:textarea, *args) {}
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class Textarea < Tag
|
|
3
|
+
extend InputSize::ClassMethods
|
|
4
|
+
include InputSize::InstanceMethods
|
|
5
|
+
|
|
6
|
+
def initialize(*args, &block)
|
|
7
|
+
if block_given?
|
|
8
|
+
super(:textarea, *args, &block)
|
|
9
|
+
else
|
|
10
|
+
super(:textarea, *args) {}
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
15
|
end
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
module Tooltip
|
|
3
|
-
POSITIONS = [:top, :bottom, :left, :right]
|
|
4
|
-
|
|
5
|
-
def tooltip(title)
|
|
6
|
-
tooltip_top(title)
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
POSITIONS.each do |position|
|
|
10
|
-
define_method "tooltip_#{position}" do |title|
|
|
11
|
-
attributes[:rel] = 'tooltip'
|
|
12
|
-
attributes['data-original-title'] = title
|
|
13
|
-
attributes['data-placement'] = position
|
|
14
|
-
self
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
module Tooltip
|
|
3
|
+
POSITIONS = [:top, :bottom, :left, :right]
|
|
4
|
+
|
|
5
|
+
def tooltip(title)
|
|
6
|
+
tooltip_top(title)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
POSITIONS.each do |position|
|
|
10
|
+
define_method "tooltip_#{position}" do |title|
|
|
11
|
+
attributes[:rel] = 'tooltip'
|
|
12
|
+
attributes['data-original-title'] = title
|
|
13
|
+
attributes['data-placement'] = position
|
|
14
|
+
self
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
end
|
|
19
19
|
end
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
module TwitterBootstrapMarkup
|
|
2
|
-
class UlContainer < Tag
|
|
3
|
-
alias :internal_append :append
|
|
4
|
-
|
|
5
|
-
def initialize(attributes={}, &block)
|
|
6
|
-
super(:ul, attributes, &(block || Proc.new {}))
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def append(element=nil, mode=:inactive, &block)
|
|
10
|
-
element = instance_eval(&block) if block_given?
|
|
11
|
-
if is_li? element
|
|
12
|
-
element.attributes.append!(:class, 'active') if mode == :active
|
|
13
|
-
internal_append element
|
|
14
|
-
else
|
|
15
|
-
attributes = mode == :active ? {:class => 'active'} : {}
|
|
16
|
-
internal_append Tag.block(:li, element, attributes)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def is_li?(element)
|
|
23
|
-
(element.is_a?(Tag) && element.name == :li) ||
|
|
24
|
-
(element.is_a?(String) && ['<li>', '<li '].include?(element.downcase[0..3]))
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
end
|
|
1
|
+
module TwitterBootstrapMarkup
|
|
2
|
+
class UlContainer < Tag
|
|
3
|
+
alias :internal_append :append
|
|
4
|
+
|
|
5
|
+
def initialize(attributes={}, &block)
|
|
6
|
+
super(:ul, attributes, &(block || Proc.new {}))
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def append(element=nil, mode=:inactive, &block)
|
|
10
|
+
element = instance_eval(&block) if block_given?
|
|
11
|
+
if is_li? element
|
|
12
|
+
element.attributes.append!(:class, 'active') if mode == :active
|
|
13
|
+
internal_append element
|
|
14
|
+
else
|
|
15
|
+
attributes = mode == :active ? {:class => 'active'} : {}
|
|
16
|
+
internal_append Tag.block(:li, element, attributes)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def is_li?(element)
|
|
23
|
+
(element.is_a?(Tag) && element.name == :li) ||
|
|
24
|
+
(element.is_a?(String) && ['<li>', '<li '].include?(element.downcase[0..3]))
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
28
|
end
|