Obviously the tab character should move forward to the next column divisible by the tab size -- it's not just a replacement for a fixed number of spaces!
I'd much rather have tab size be set to get smaller based on the number of indentations/longest line.
Now, some people will claim that having 8-character indentations makes the code move too far to the right, and makes it hard to read on a 80-character terminal screen. The answer to that is that if you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.
And I think I kinda agree with this.
module
class
def
if
class << self
defBut still excessive indentation is a hint that the code may benefit from some refactoring.