class AudioBookCreator::CascadingArray

this fetching from the first array, fetching from the second if nothing is available

Attributes

all[RW]
alt[RW]

@!attribute alt

@return Array the alternative array if this one is empty
main[RW]

@!attribute main

@return Array the alternative array if this one is empty

Public Class Methods

new(main, alt) click to toggle source
# File lib/audio_book_creator/cascading_array.rb, line 18
def initialize(main, alt)
  @all = Set.new.merge(main).merge(alt)
  @main = main
  @alt = alt
end

Public Instance Methods

add_chapter(value) click to toggle source
# File lib/audio_book_creator/cascading_array.rb, line 24
def add_chapter(value)
  all << value
  alt << value
end
add_page(value) click to toggle source
# File lib/audio_book_creator/cascading_array.rb, line 33
def add_page(value)
  all << value
  main << value
end
add_unique_chapter(value) click to toggle source
# File lib/audio_book_creator/cascading_array.rb, line 29
def add_unique_chapter(value)
  add_chapter(value) unless include?(value)
end
add_unique_page(value) click to toggle source
# File lib/audio_book_creator/cascading_array.rb, line 38
def add_unique_page(value)
  add_page(value) unless include?(value)
end
each(&block) click to toggle source
# File lib/audio_book_creator/cascading_array.rb, line 42
def each(&block)
  return enum_for unless block_given?
  main.each(&block)
  alt.each(&block)
end
include?(value) click to toggle source

note: ever included

# File lib/audio_book_creator/cascading_array.rb, line 49
def include?(value)
  all.include?(value)
end
shift() click to toggle source
# File lib/audio_book_creator/cascading_array.rb, line 53
def shift
  main.shift || alt.shift
end