On rails 3 and ruby 1.9.2, I get this error:
(eval):1: syntax error, unexpected $undefined $#<MenuBuilder:0x007fd9360719a0> = #<MENUBUILDER:0X007FD9360719A0> ^
Not sure where to start with this. Everything looks fine to me:
#_main_menu.html.haml
#main-menu = menu do |m| = m.submenu "Products" do = m.item "Products", Product
#builders_helper.rb module BuildersHelper def menu(options = {}, &block) MenuBuilder.new(self).root(options, &block) end end
#menu_builder.rb
class MenuBuilder attr_accessor :template
def initialize(template) @template = template end
def root(options, &block) options[:class] = "jd_menu jd_menu_slate ui-corner-all" content_tag :ul, capture(self, &block), options end
def item(title, url, options = {}) content_tag :li, options do url = ajax_route(url) unless String === url url = dash_path + url if url.starts_with?("#") link_to title, url end end
def submenu(title, options = {}, &block) content_tag :li do content_tag(:h6, title.t) + content_tag(:ul, capture(self, &block), :class => "ui-corner- all") end end end
It fails on this line for some reason:
content_tag :ul, capture(self, &block), options
thnanks for response