Sha256: d0191377c34499391bb78ab611ba58fad5dc017ea183d9f19625d6a4ceed25ea

Contents?: true

Size: 675 Bytes

Versions: 9

Compression:

Stored size: 675 Bytes

Contents

module Adva
  module View
    class Menu
      class Items < Array
        def insert(text, url, options, block)
          item = [text, url, options, block]
          if ix = options.delete(:at)
            super(ix, item)
          elsif ix = index(options.delete(:before))
            super(ix, item)
          elsif ix = index(options.delete(:after))
            super(ix + 1, item)
          elsif ix = index(options.delete(:replace))
            self[ix] = item
          else
            push(item)
          end
        end

        def index(text)
          each_with_index { |item, ix| return ix if item[0] == text } and nil
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
adva-core-0.0.14 lib/adva/view/menu/items.rb
adva-core-0.0.13 lib/adva/view/menu/items.rb
adva-core-0.0.9 lib/adva/view/menu/items.rb
adva-core-0.0.8 lib/adva/view/menu/items.rb
adva-core-0.0.7 lib/adva/view/menu/items.rb
adva-core-0.0.6 lib/adva/view/menu/items.rb
adva-core-0.0.5 lib/adva/view/menu/items.rb
adva-core-0.0.4 lib/adva/view/menu/items.rb
adva-core-0.0.2 lib/adva/view/menu/items.rb