Ok, now I understand what you mean. And you are right, for some reason I 
totally got off the path I was following initially.
But the problem I'm trying to deal with right now would probably persist 
when storing the information inside an object:

I'm currently using the num.step method to iterate from zero to the 
length of the ruler, in order to calculate the positions. This creates 
multiple types of lines on the same position, e.g.

|         |         |           lines[0] 
|    |    |    |    |    |      lines[1]
||||||||||||||||||||||||||||    lines[2]
0    5   10

lines indicate value, e.g. lines[2] = [1..n]

To prevent that, when adding a line (position) to lines, it is necessary 
to iterate over the previous array(s), checking if the value-to-be is 
already included (enum.include?).

I don't like that approach, although it probably works. I have yet to 
experiment with "following the metaphor".

Alternatively, I would have to find a method to generate the positions 
directly, like
0, 10, 20, 30
5, 15, 25, 35
1,2,3,4,6,7,8,9, ...

But since the pattern depends on the parameter, I am not sure if a 
reasonably short equation could be found.

Another thought that crossed my mind was to define the positions 
recursively, e.g. "divide length into n sections, divide those into l 
sections, .."
But I have not evaluated the pros and cons of this, regarding usability. 
It probably is the same, in the end.

On the other hand, I figure that there is indeed a simple solution to 
this.

For now, I'll try to use classes and methods and learn on the way, I'll 
eventually find something that works well..

Thanks for the inspiration!

-- 
Posted via http://www.ruby-forum.com/.