class Counterstring::String

Public Instance Methods

to_s() click to toggle source
# File lib/counterstring.rb, line 9
def to_s
  return '' if length.zero?

  return length.to_s if length == 1

  output = '1' + marker
  last_position_number = 1

  while output.size < length
    position_number = output.size + (last_position_number.to_s.size)
    if position_number.to_s.size > last_position_number.to_s.size
      position_number += 1
    end
    token = position_number.to_s + marker
    remaining_length = length - output.size
    output += token
    last_position_number = position_number
  end

  output[0,length]
end

Private Instance Methods

marker() click to toggle source
# File lib/counterstring.rb, line 33
def marker
  '*'
end