Class: Qfill::ListSet

Inherits:
Object
  • Object
show all
Defined in:
lib/qfill/list_set.rb

Direct Known Subclasses

Popper, Pusher

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ ListSet

Returns a new instance of ListSet.

Raises:

  • (ArgumentError)


13
14
15
16
17
18
# File 'lib/qfill/list_set.rb', line 13

def initialize(*args)
  raise ArgumentError, "Missing required arguments for #{self.class}.new(queues)" unless args.length.positive?

  @queues = args
  @current_index = 0
end

Instance Attribute Details

#current_indexObject

Returns the value of attribute current_index.



11
12
13
# File 'lib/qfill/list_set.rb', line 11

def current_index
  @current_index
end

#queuesObject

Returns the value of attribute queues.



11
12
13
# File 'lib/qfill/list_set.rb', line 11

def queues
  @queues
end

Instance Method Details

#[](key) ⇒ Object



20
21
22
# File 'lib/qfill/list_set.rb', line 20

def [](key)
  queues.find { |queue| queue.name == key }
end

#count_all_elementsObject



35
36
37
# File 'lib/qfill/list_set.rb', line 35

def count_all_elements
  queues.inject(0) { |counter, queue| counter += queue.elements.length }
end

#index_of(queue_name) ⇒ Object



24
25
26
27
28
29
# File 'lib/qfill/list_set.rb', line 24

def index_of(queue_name)
  index = queues.index { |queue| queue.name == queue_name }
  return index if index

  raise Qfill::Errors::InvalidIndex, "Cannot locate index of #{queue_name}"
end

#reset!Object



31
32
33
# File 'lib/qfill/list_set.rb', line 31

def reset!
  self.current_index = 0
end