Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
def menu_link(text, target, icon=nil, attributes={})
# Find path
path = target.is_a?(String) ? target : target.path
raise RuntimeError, "Cannot create a link to #{target.inspect} because this target is not outputted (its routing rule returns nil)" if path.nil?
# Check for current page
if @item_rep && @item_rep.path == path
activestr = " class='active'"
else
activestr = ""
end
# Handle the icon
iconstr = icon ? "<i class='#{icon}'></i>" : ""
# Join attributes
attributes = attributes.inject('') do |memo, (key, value)|
memo + key.to_s + '="' + h(value) + '" '
end
# Create link
"<li#{activestr}><a #{attributes}href='#{h path}'>#{iconstr}#{text}</a></li>"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.