Class: Waiter::Menu::ItemList

Inherits:
Array
  • Object
show all
Defined in:
lib/waiter/menu/item_list.rb

Instance Method Summary collapse

Constructor Details

#initialize(ary = [], sort_options = {}) ⇒ ItemList

Returns a new instance of ItemList.



4
5
6
7
# File 'lib/waiter/menu/item_list.rb', line 4

def initialize(ary = [], sort_options = {})
  super(ary)
  sort(sort_options)
end

Instance Method Details

#[](index) ⇒ Object



14
15
16
17
# File 'lib/waiter/menu/item_list.rb', line 14

def [](index)
  return detect{ |item| item.name == index } if index.is_a? Symbol
  super
end

#include?(other) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
# File 'lib/waiter/menu/item_list.rb', line 9

def include?(other)
  return map(&:name).include?(other) if other.is_a? Symbol
  super
end

#namesObject



19
20
21
# File 'lib/waiter/menu/item_list.rb', line 19

def names
  map(&:name)
end

#sort(options = {}) ⇒ Object



23
24
25
26
# File 'lib/waiter/menu/item_list.rb', line 23

def sort(options = {})
  sort_by!(&options[:sort].to_sym) if options.fetch(:sort, false)
  reverse! if options.fetch(:reverse, false)
end