Class: OrderedCompositeSequences
- Inherits:
-
Object
- Object
- OrderedCompositeSequences
- Defined in:
- lib/ordered_composite_sequences.rb
Instance Method Summary collapse
- #add_sequence_for(prime) ⇒ Object
- #empty? ⇒ Boolean
-
#initialize ⇒ OrderedCompositeSequences
constructor
A new instance of OrderedCompositeSequences.
- #next_composite ⇒ Object
- #take_next_composite! ⇒ Object
Constructor Details
#initialize ⇒ OrderedCompositeSequences
Returns a new instance of OrderedCompositeSequences.
5 6 7 |
# File 'lib/ordered_composite_sequences.rb', line 5 def initialize @sequences = [] end |
Instance Method Details
#add_sequence_for(prime) ⇒ Object
33 34 35 36 |
# File 'lib/ordered_composite_sequences.rb', line 33 def add_sequence_for(prime) (@sequences << CompositeSequence.of_base_prime(prime)).sort! nil end |
#empty? ⇒ Boolean
9 10 11 |
# File 'lib/ordered_composite_sequences.rb', line 9 def empty? @sequences.empty? end |
#next_composite ⇒ Object
29 30 31 |
# File 'lib/ordered_composite_sequences.rb', line 29 def next_composite next_sequence.next end |
#take_next_composite! ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/ordered_composite_sequences.rb', line 13 def take_next_composite! next_sequence.take_next!.tap do |return_value| @sequences.sort! @sequences.each do |other_sequence| upcoming_value = other_sequence.next if upcoming_value == return_value other_sequence.take_next! end break if upcoming_value > return_value end @sequences.sort! end end |