class ActiveAdmin::Menu

def [](name)

def [](name)
  items.find{ |i| i.name == name }
end

def add(*args, &block)

def add(*args, &block)
  @items << MenuItem.new(*args, &block)
end

def find_by_url(url)

def find_by_url(url)
  recursive_find_by_url(items, url)
end

def initialize

def initialize
  @items = []
  yield(self) if block_given?
end  

def items

def items
  @items.sort
end

def recursive_find_by_url(collection, url)

def recursive_find_by_url(collection, url)
  found = nil
  collection.each do |item|
    if item.url == url
      found = item
      break
    else
      found = recursive_find_by_url(item.children, url)
      break if found
    end
  end
  found
end