950a55ae032d4f27110ad49f3067afc0

I'm pretty sure there's a better way to do it.

def number_in_fixed_width number, width
  string = number.to_s
  ' ' * (width - string.length) + string
end

number_in_fixed_width 42, 5    # => "   42"
number_in_fixed_width 123, 5   # => "  123"

Refactorings

No refactoring yet !

D41d8cd98f00b204e9800998ecf8427e

gnab

November 1, 2010, November 01, 2010 12:52, permalink

1 rating. Login to rate!
def number_in_fixed_width number, width
  number.to_s.rjust(width)
end

number_in_fixed_width 42, 5    # => "   42"
number_in_fixed_width 123, 5   # => "  123"
950a55ae032d4f27110ad49f3067afc0

Hashmal

November 1, 2010, November 01, 2010 13:01, permalink

No rating. Login to rate!

Oh, thank you gnab! I was thinking about using `"%5s" % number` but `rjust` seems more powerful.

Fd534d7c08b85546ce17df043ef15cd3

Omer Jakobinsky

November 1, 2010, November 01, 2010 21:27, permalink

1 rating. Login to rate!

you can try this one out as well...

class Fixnum
  def fixed_width w
    to_s.rjust w
  end
end

1.fixed_with(5) # => "    1"
863e24c91fcf1cd3c879ea62a401365e

Samnang

November 2, 2010, November 02, 2010 12:16, permalink

2 ratings. Login to rate!

Here is another option:

class Fixnum
  def fixed_width width
    "%#{width}d" % self
  end
end

1.fixed_width(5) # => "    1"

Your refactoring





Format Copy from initial code

or Cancel