Module: Shorten::Numeric

Included in:
Bignum, Fixnum
Defined in:
lib/shorten.rb

Instance Method Summary collapse

Instance Method Details

#shorten(chars = Shorten::BASE62) ⇒ String

Returns Shortened string.

Parameters:

  • chars (String) (defaults to: Shorten::BASE62)

    Sequence of characters for shortening

Returns:

  • (String)

    Shortened string

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/shorten.rb', line 10

def shorten chars = Shorten::BASE62
  raise ArgumentError.new('String required') unless chars.is_a? String
  raise ArgumentError.new('Only non-negative integers can be shortened') if self < 0

  num = self
  len = chars.length
  str = ''
  while num > 0
    mod = num % len
    str = chars[mod, 1] + str
    num /= len
  end
  str
end