1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Merge rubygems-2.6.13.

see details for this update:
  http://blog.rubygems.org/2017/08/27/2.6.13-released.html

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
hsbt 2017-08-28 08:31:28 +00:00
parent 1a1930180c
commit c5da5b1ea2
11 changed files with 193 additions and 8 deletions

View file

@ -6,13 +6,26 @@ require 'rubygems'
module Gem::Text
##
# Remove any non-printable characters and make the text suitable for
# printing.
def clean_text(text)
text.gsub(/[\000-\b\v-\f\016-\037\177]/, ".".freeze)
end
def truncate_text(text, description, max_length = 100_000)
raise ArgumentError, "max_length must be positive" unless max_length > 0
return text if text.size <= max_length
"Truncating #{description} to #{max_length.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse} characters:\n" + text[0, max_length]
end
##
# Wraps +text+ to +wrap+ characters and optionally indents by +indent+
# characters
def format_text(text, wrap, indent=0)
result = []
work = text.dup
work = clean_text(text)
while work.length > wrap do
if work =~ /^(.{0,#{wrap}})[ \n]/ then