Class: EhbrsRubyUtils::CircularListSpreader::List

Inherits:
Object
  • Object
show all
Defined in:
lib/ehbrs_ruby_utils/circular_list_spreader/list.rb,
lib/ehbrs_ruby_utils/circular_list_spreader/list/item_pair_spreadness.rb

Defined Under Namespace

Classes: ItemPairSpreadness

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.emptyObject



9
10
11
# File 'lib/ehbrs_ruby_utils/circular_list_spreader/list.rb', line 9

def empty
  new([], 0)
end

Instance Method Details

#insert(position, item_level) ⇒ Object



19
20
21
22
23
# File 'lib/ehbrs_ruby_utils/circular_list_spreader/list.rb', line 19

def insert(position, item_level)
  dup_items = items.dup
  dup_items.insert(position, item_level)
  self.class.new(dup_items, position)
end

#items_pair_enumeratorObject



25
26
27
28
29
30
31
32
33
# File 'lib/ehbrs_ruby_utils/circular_list_spreader/list.rb', line 25

def items_pair_enumerator
  ::Enumerator.new do |enum|
    (count - 1).times do |li|
      ((li + 1)..(count - 1)).each do |ri|
        enum.yield(li, ri)
      end
    end
  end
end

#to_sObject



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

def to_s
  items.map { |i| i.item.to_s }.join(', ')
end