Sha256: df40e5ddda2b22949c51eaa2b4fe11950a8adb5ab5e69db72c8151ee00001051
Contents?: true
Size: 926 Bytes
Versions: 1
Compression:
Stored size: 926 Bytes
Contents
#!/usr/bin/env ruby # ordinal.rb # yesmar@speakeasy.net module Ordinal # convert number to ordinal def to_ordinal cardinal = self.to_i.abs if (10...20).include?(cardinal) then cardinal.to_s << 'th' else cardinal.to_s << %w{th st nd rd th th th th th th}[cardinal % 10] end end # convert ordinal to number def Integer.from_ordinal(ordinal) raise ArgumentError, 'nil ordinal' if ordinal.nil? raise ArgumentError, 'invalid ordinal class' if ordinal.class != String raise ArgumentError, 'empty ordinal' if ordinal.empty? raise ArgumentError, 'not an ordinal' if ordinal.length < 3 suffix = ordinal[-2,2] if suffix == 'st' || suffix == 'nd' || suffix == 'rd' || suffix == 'th' value = ordinal[0,ordinal.length-2] else raise 'not an ordinal' end value.to_i end end raise RuntimeError, 'This library is for require only' if $0 == __FILE__
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rex-0.0.4 | lib/rex/modules/ordinal.rb |