Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compability with simple-navigation 4.0.0 #15

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/simple-navigation-bootstrap/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module SimpleNavigationBootstrap
VERSION = "1.0.2"
VERSION = "1.0.3"
end
27 changes: 17 additions & 10 deletions lib/simple_navigation/rendering/renderer/bootstrap.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@ def render(item_container)
config_selected_class = SimpleNavigation.config.selected_class
SimpleNavigation.config.selected_class = 'active'
list_content = item_container.items.inject([]) do |list, item|
li_options = item.html_options.reject {|k, v| k == :link}
# li_options = item.html_options.reject {|k, v| k == :link}
li_options = item.html_options
icon = li_options.delete(:icon)
dropdown = item_container.dropdown.nil? ? true : item_container.dropdown
split = item_container.split
split = (include_sub_navigation?(item) and li_options.delete(:split)) if li_options.include?(:split)
dropdown = (include_sub_navigation?(item) and li_options.delete(:dropdown)) if li_options.include?(:dropdown)
li_content = tag_for(item, item.name, icon, split, dropdown)
to_skip = false
if include_sub_navigation?(item)
if split
lio = li_options.dup
Expand All @@ -23,10 +25,16 @@ def render(item_container)
li_content = tag_for(item)
end
item.sub_navigation.dom_class = [item.sub_navigation.dom_class, dropdown ? 'dropdown-menu' : nil, split ? 'pull-right' : nil].flatten.compact.join(' ')
li_content << render_sub_navigation_for(item)
sub_content = render_sub_navigation_for(item)
to_skip = true if respond_to?(:skip_if_empty?) && skip_if_empty? && sub_content.blank?
li_content << sub_content
li_options[:class] = [li_options[:class], dropdown ? 'dropdown' : nil, split ? 'dropdown-split-right' : nil].flatten.compact.join(' ')
end
list << content_tag(:li, li_content, li_options)
if to_skip
list << ''
else
list << content_tag(:li, li_content, li_options)
end
end.join
SimpleNavigation.config.selected_class = config_selected_class
if item_container.respond_to?(:dom_attributes)
Expand All @@ -49,18 +57,17 @@ def tag_for(item, name = '', icon = nil, split = false, dropdown = false)
link << content_tag(:i, '', :class => [icon].flatten.compact.join(' ')) unless icon.nil?
link << name
if include_sub_navigation?(item)
item_options = item.html_options
item_options[:link] = Hash.new if item_options[:link].nil?
item_options[:link][:class] = Array.new if item_options[:link][:class].nil?
item_link_html_opts = item.link_html_options || Hash.new
item_link_html_opts[:class] = Array.new if item_link_html_opts[:class].nil?
unless split
if dropdown
item_options[:link][:class] << 'dropdown-toggle'
item_options[:link][:'data-toggle'] = 'dropdown'
item_options[:link][:'data-target'] = '#'
item_link_html_opts[:class] << 'dropdown-toggle'
item_link_html_opts[:'data-toggle'] = 'dropdown'
item_link_html_opts[:'data-target'] = '#'
end
link << content_tag(:b, '', :class => 'caret')
end
item.html_options = item_options
item.instance_variable_set(:'@link_html_options', item_link_html_opts)
end
link_to(link.join(" ").html_safe, url, options_for(item))
end
Expand Down
2 changes: 1 addition & 1 deletion simple-navigation-bootstrap.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ Gem::Specification.new do |s|

# specify any dependencies here; for example:
s.add_development_dependency "rake"
s.add_runtime_dependency "simple-navigation", ">= 3.7.0", "< 4.0.0"
s.add_runtime_dependency "simple-navigation", ">= 4.0.0"
s.add_runtime_dependency "railties", ">= 3.1"
end