Class: EhbrsRubyUtils::CircularListSpreader::GroupLevel

Inherits:
Object
  • Object
show all
Includes:
BaseLevel
Defined in:
lib/ehbrs_ruby_utils/circular_list_spreader/group_level.rb

Instance Method Summary collapse

Methods included from BaseLevel

#<=>, #debugs, #remaining?, #remaining_f, #remaining_fs

Instance Method Details

#popObject



21
22
23
# File 'lib/ehbrs_ruby_utils/circular_list_spreader/group_level.rb', line 21

def pop
  children.values.max.pop
end

#pop_allObject



25
26
27
28
29
# File 'lib/ehbrs_ruby_utils/circular_list_spreader/group_level.rb', line 25

def pop_all
  r = []
  r << pop while remaining?
  r
end

#push(path, item) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/ehbrs_ruby_utils/circular_list_spreader/group_level.rb', line 11

def push(path, item)
  child_path = path.dup
  current = child_path.shift
  if child_path.any?
    push_group_level(current, child_path, item)
  else
    push_item_level(current, item)
  end
end

#remaining_iObject



31
32
33
# File 'lib/ehbrs_ruby_utils/circular_list_spreader/group_level.rb', line 31

def remaining_i
  children.values.inject(0) { |a, e| a + e.remaining_i }
end

#total_iObject



35
36
37
# File 'lib/ehbrs_ruby_utils/circular_list_spreader/group_level.rb', line 35

def total_i
  children.values.inject(0) { |a, e| a + e.total_i }
end