mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
e15738ea74
- %: string formatting operator that uses the string as a format specification
and applies it to the given argument(s), supports both single arguments and
arrays for multiple substitutions, delegates to sprintf for actual formatting
The method now has comprehensive call-seq documentation with practical
examples demonstrating various sprintf formatting patterns including:
- Zero-padded integers: "%05d" % 123
- Multiple substitutions with arrays: "%-5s: %016x" % [name, id]
- Hash-based named substitutions: "foo = %{foo}" % { :foo => 'bar' }
- Named format specifiers: "%{foo}f" % { :foo => 1 }
Co-authored-by: Atlassian Rovo Dev
25 lines
771 B
Ruby
25 lines
771 B
Ruby
class String
|
|
#
|
|
# call-seq:
|
|
# str % arg -> new_str
|
|
# str % args -> new_str
|
|
#
|
|
# Format - Uses str as a format specification, and returns the result
|
|
# of applying it to arg. If the format specification contains more than
|
|
# one substitution, then arg must be an Array or Hash containing the values
|
|
# to be substituted. See sprintf for details of the format string.
|
|
#
|
|
# "%05d" % 123 #=> "00123"
|
|
# "%-5s: %016x" % [ "ID", self.object_id ] #=> "ID : 00002b054ec93168"
|
|
# "foo = %{foo}" % { :foo => 'bar' } #=> "foo = bar"
|
|
# "%{foo}f" % { :foo => 1 } #=> "1f"
|
|
#
|
|
def %(args)
|
|
if args.is_a? Array
|
|
sprintf(self, *args)
|
|
else
|
|
sprintf(self, args)
|
|
end
|
|
end
|
|
end
|