class Formator

Public Class Methods

format_sequence(sequence:, options: {array: nil, offset: nil}) click to toggle source
# File lib/euclidean_sequencer/formator.rb, line 3
def self.format_sequence(sequence:, options: {array: nil, offset: nil})
  if options[:array] && !options[:offset]
    return convert_to_array(sequence)
  end

  if options[:array] && options[:offset]
    return offset(convert_to_array(sequence), options[:offset])
  end

  if options[:offset] && !options[:array]
    return offset(sequence, options[:offset])
  end

  return sequence
end

Private Class Methods

convert_to_array(sequence) click to toggle source
# File lib/euclidean_sequencer/formator.rb, line 21
def self.convert_to_array(sequence)
  array = []
  sequence.length.times { |element| array[element] = sequence[element].to_i }
  array
end
offset(sequence, offset) click to toggle source
# File lib/euclidean_sequencer/formator.rb, line 27
def self.offset(sequence, offset)
  if sequence.is_a?(String)
    return offset_array(sequence.split(//), offset).join
  end
  return offset_array(sequence, offset)
end
offset_array(array, offset) click to toggle source
# File lib/euclidean_sequencer/formator.rb, line 34
def self.offset_array(array, offset)
  offset.times { array << array.shift }
  return array
end