stdlib/string/format_edge.rb
tests/_examples/stdlib/string/format_edge.rb in the metorex repository.
# A String handed to a number directive is read the way `Integer()` reads one,
# so the base a prefix names is the one it counts in.
puts("%x" % "196")
puts("%X" % "0xc4")
puts("%o" % "0127")
puts("%b" % "0b1010")
# A String naming no number at all is refused.
begin
"%x" % "hello"
rescue ArgumentError => trouble
puts(trouble.message)
end
# %c names a character by its code, or takes the first of a string.
puts("%c" % 65)
puts("%c" % "Z")
# Width with right-align (non-zero-pad)
puts("%8s!" % "hi")
# Integer format from float
puts("%i" % 7.9)
# Float with int arg
puts("%f" % 5)
# Float with precision and int
puts("%.2f" % 5)
# Trailing % is written by doubling it
puts("test%%" % [])
Output:
c4
C4
127
1010
invalid value for Integer(): "hello"
A
Z
hi!
7
5.000000
5.00
test%