Class: CounterString

Inherits:
Object
  • Object
show all
Defined in:
lib/counter_string.rb

Instance Method Summary collapse

Constructor Details

#initializeCounterString



2
3
4
5
# File 'lib/counter_string.rb', line 2

def initialize()
  @position_marker_character = "*"
  @output = ""
end

Instance Method Details

#generate(length = 0) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/counter_string.rb', line 7

def generate(length=0)
  length = length.to_i
  if length == 0
    return ""
  elsif length == 1
    return "#{length}"
  else
    @output = "2" + @position_marker_character
    last_position_number = 2
    while @output.size < length
      position_number = @output.size + (last_position_number.to_s.size + 1)
      if position_number.to_s.size > last_position_number.to_s.size
        position_number += 1
      end
      token = position_number.to_s + @position_marker_character
      remaining_length = length - @output.size
      if remaining_length < token.size + @output.size
        token = token[0,remaining_length]
      end
      @output += token
      last_position_number = position_number
    end
  end
  return @output
end