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
|