Sha256: dc4066992b843280cd8605b44a00540bde90ceb94e72642f1b6a750505b19657
Contents?: true
Size: 1.75 KB
Versions: 22
Compression:
Stored size: 1.75 KB
Contents
module ConteRailsTemplate class NavigationRenderer < SimpleNavigation::Renderer::Base def render(item_container) if options[:is_subnavigation] ul_class = "child" else ul_class = "parent" end list_content = item_container.items.inject([]) do |list, item| li_options = item.html_options.reject {|k, v| k == :link} li_content = tag_for(item) if include_sub_navigation?(item) li_content << render_sub_navigation_for(item) end list << content_tag(:li, li_content, li_options) end.join if skip_if_empty? && item_container.empty? '' else content_tag(:ul, list_content, { :id => item_container.dom_id, :class => [item_container.dom_class, ul_class].flatten.compact.join(' ') }) end end def render_sub_navigation_for(item) item.sub_navigation.render(self.options.merge(:is_subnavigation => true)) end protected def tag_for(item) if item.url.nil? content_tag('span', item.name, link_options_for(item).except(:method)) else link_content = item.name if item.url == "javascript:void(0);" link_content = "#{item.name}<b class=\"caret\"></b>" end link_to(link_content, item.url, link_options_for(item)) end end # Extracts the options relevant for the generated link # def link_options_for(item) special_options = {:method => item.method}.reject {|k, v| v.nil? } link_options = item.html_options[:link] || {} opts = special_options.merge(link_options) opts[:class] = [link_options[:class], item.selected_class].flatten.compact.join(' ') opts.delete(:class) if opts[:class].nil? || opts[:class] == '' opts end end end
Version data entries
22 entries across 22 versions & 1 rubygems
Version | Path |
---|---|
conte_rails_template-0.0.12 | lib/navigation_renderer.rb |
conte_rails_template-0.0.11 | lib/navigation_renderer.rb |