Class: EverydayMenu::MenuItemList

Inherits:
Object
  • Object
show all
Defined in:
lib/everyday-menu/menu.rb

Instance Method Summary collapse

Constructor Details

#initialize(menu) ⇒ MenuItemList

Returns a new instance of MenuItemList.



160
161
162
163
# File 'lib/everyday-menu/menu.rb', line 160

def initialize(menu)
  @menuItems = {}
  @menu      = menu
end

Instance Method Details

#<<(item) ⇒ Object



165
166
167
168
169
170
# File 'lib/everyday-menu/menu.rb', line 165

def <<(item)
  previousItemTag        = @menuItems.keys.last || 0
  item[:tag]             = previousItemTag + 1
  @menuItems[item[:tag]] = item
  @menu.addItem item.menuItem
end

#[](labelOrTag) ⇒ Object



172
173
174
# File 'lib/everyday-menu/menu.rb', line 172

def [](labelOrTag)
  (labelOrTag.is_a? Fixnum) ? @menuItems[labelOrTag] : @menuItems.values.find { |item| item.label == labelOrTag }
end

#each(&block) ⇒ Object



192
193
194
# File 'lib/everyday-menu/menu.rb', line 192

def each(&block)
  @menuItems.values.each(&block)
end

#selectItem(label) ⇒ Object Also known as: select_item



176
177
178
179
# File 'lib/everyday-menu/menu.rb', line 176

def selectItem(label)
  item = self[label]
  item.execute
end

#selectItemByMember(member) ⇒ Object Also known as: select_item_by_member



183
184
185
186
187
188
# File 'lib/everyday-menu/menu.rb', line 183

def selectItemByMember(member)
  item = @menuItems.values.find do |i|
    i[:represented_object] == member
  end
  item.execute
end