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