Class: Bootstrap::Component::Carousel
Instance Method Summary
collapse
#append, def_div_method, def_simple_tag_method, def_tag_method, #initialize, #insert, #prepend, #render, render, #wrap
Methods included from Delegate
#method_missing, #respond_to_missing?
Methods included from BasicTags
#html
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Bootstrap::Delegate
Instance Method Details
#carousel(id, active_index, &block) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'mod/bootstrap/lib/bootstrap/component/carousel.rb', line 8
def carousel id, active_index, &block
@id = id
@active_item_index = active_index
@items = []
instance_exec &block
@html.div class: "carousel slide", id: id, data: { ride: "carousel" } do
indicators
items
control_prev
control_next
end
end
|
#control_next ⇒ Object
47
48
49
50
51
52
53
|
# File 'mod/bootstrap/lib/bootstrap/component/carousel.rb', line 47
def control_next
@html.a class: "carousel-control-next", href: "##{@id}", role: "button",
data: { slide: "next" } do
@html.span class: "carousel-control-next-icon", "aria-hidden" => "true"
@html.span "Next", class: "sr-only"
end
end
|
#control_prev ⇒ Object
39
40
41
42
43
44
45
|
# File 'mod/bootstrap/lib/bootstrap/component/carousel.rb', line 39
def control_prev
@html.a class: "carousel-control-prev", href: "##{@id}", role: "button",
data: { slide: "prev" } do
@html.span class: "carousel-control-prev-icon", "aria-hidden" => "true"
@html.span "Previous", class: "sr-only"
end
end
|
#indicator(index) ⇒ Object
61
62
63
64
65
|
# File 'mod/bootstrap/lib/bootstrap/component/carousel.rb', line 61
def indicator index
html_opts = { "data-slide-to" => index, "data-target": "##{@id}" }
add_class html_opts, "active" if index == @active_item_index
@html.li html_opts
end
|
#indicators ⇒ Object
55
56
57
58
59
|
# File 'mod/bootstrap/lib/bootstrap/component/carousel.rb', line 55
def indicators
@html.ol class: "carousel-indicators" do
@items.size.times { |i| indicator i }
end
end
|
#item(content = nil, &block) ⇒ Object
22
23
24
|
# File 'mod/bootstrap/lib/bootstrap/component/carousel.rb', line 22
def item content=nil, &block
@items << (content || block)
end
|
#items ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'mod/bootstrap/lib/bootstrap/component/carousel.rb', line 26
def items
@html.div class: "carousel-inner", role: "listbox" do
@items.each_with_index do |item, index|
html_opts = { class: "carousel-item" }
add_class html_opts, "active" if index == @active_item_index
@html.div html_opts do
item = item.call if item.respond_to?(:call)
@html.text!(item) if item.is_a?(String)
end
end
end
end
|
#render_content ⇒ Object
4
5
6
|
# File 'mod/bootstrap/lib/bootstrap/component/carousel.rb', line 4
def render_content
carousel *@args, &@build_block
end
|