Method: Doing::WWID#dedup

Defined in:
lib/doing/wwid/wwidutil.rb

#dedup(items, no_overlap: false) ⇒ Object

Remove items from an array that already exist in :content based on start and end times

Parameters:

  • items (Array)

    The items to deduplicate

  • no_overlap (Boolean) (defaults to: false)

    Remove items with overlapping time spans



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/doing/wwid/wwidutil.rb', line 14

def dedup(items, no_overlap: false)
  items.delete_if do |item|
    duped = false
    @content.each do |comp|
      duped = no_overlap ? item.overlapping_time?(comp) : item.same_time?(comp)
      break if duped
    end
    logger.count(:skipped, level: :debug, message: '%count overlapping %items') if duped
    # logger.log_now(:debug, 'Skipped:', "overlapping entry: #{item.title}") if duped
    duped
  end
end