Files
Yukihiro "Matz" Matsumoto e15738ea74 mruby-sprintf: add comprehensive call-seq documentation for String#% method
- %: 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
2025-08-14 10:52:47 +09:00

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