class RailsBootstrapTabs::Renderers::TabsRenderer
Constants
- Tab
Public Class Methods
new(template, *args, &block)
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 3 def initialize(template, *args, &block) @template = template @args = args || [] @options = args[0] || {} @block = block @tabs = [] end
Public Instance Methods
method_missing(*args, &block)
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 98 def method_missing(*args, &block) @template.send(*args, &block) end
prepare_tabs()
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 22 def prepare_tabs @tabs.each.with_index do |tab, index| tab.options[:anchor] ||= "tab-#{index}-#{rstr(index)}" if tab.options[:fade_effect].nil? if @options.key?(:fade_effect) tab.options[:fade_effect] = @options[:fade_effect] else tab.options[:fade_effect] = RailsBootstrapTabs.fade_effect end end if tab.options[:nav_markup].nil? if @options.key?(:nav_markup) tab.options[:nav_markup] = @options[:nav_markup] else tab.options[:nav_markup] = RailsBootstrapTabs.nav_markup end end end active_tab = @tabs.find { |t| t.options[:active] } active_tab ||= @tabs.first @tabs.each { |t| t.options.delete(:active) } active_tab.options[:active] = true if active_tab end
render()
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 16 def render @block.call(Context.new(self)) prepare_tabs render_tabs(@tabs) + render_panes(@tabs, @options) end
render_pane(tab)
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 78 def render_pane(tab) raise "Must be redefined" end
render_panes(tabs, options)
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 56 def render_panes(tabs, options) render_panes_wrapper(options) do tabs.map do |tab| render_pane(tab) do tab.block.call if tab.block end end.join("\n").html_safe end end
render_panes_wrapper(options)
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 74 def render_panes_wrapper(options) raise "Must be redefined" end
render_tab(tab)
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 70 def render_tab(tab) raise "Must be redefined" end
render_tabs(tabs)
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 46 def render_tabs(tabs) render_tabs_wrapper do tabs.map do |tab| render_tab(tab) do tab.name end end.join("\n").html_safe end end
render_tabs_wrapper()
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 66 def render_tabs_wrapper raise "Must be redefined" end
rstr(seed)
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 11 def rstr(seed) rnd = Random.new(seed) (0...8).map { ('a'.ord + rnd.rand(26)).chr }.join end
tab(name, options, &block)
click to toggle source
# File lib/rails-bootstrap-tabs/renderers/tabs_renderer.rb, line 82 def tab(name, options, &block) @tabs << Tab.new(name, options, block) end