Sha256: c76d98898a5ff14345c6bccbea60423e9cfcb59036c0640be29258b6cb0df730
Contents?: true
Size: 871 Bytes
Versions: 1
Compression:
Stored size: 871 Bytes
Contents
module Orders # Abstract (equivalent of SortedList) # базовый класс "сортированный список" class IndexedList < Hash # Returns default list index for items def index item item.object_id end # Adds new item to the list (replaces item with the same index) def add item self[index item] = item self end alias << add # Removes item from the list def remove item delete index item self end # Calls #remove for each item in list def clear each_value { |item| remove item } end # Yields list items in order of their index def each if block_given? keys.sort.each { |key| yield self[key] } else ary = [] keys.sort.each { |key| ary << self[key] } ary end end # Make direct setter private private :[]= end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
orders-0.0.2 | lib/orders/indexed_list.rb |