diff options
Diffstat (limited to 'ruby_2_2/lib/rubygems/text.rb')
-rw-r--r-- | ruby_2_2/lib/rubygems/text.rb | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/ruby_2_2/lib/rubygems/text.rb b/ruby_2_2/lib/rubygems/text.rb deleted file mode 100644 index 86a722ffc0..0000000000 --- a/ruby_2_2/lib/rubygems/text.rb +++ /dev/null @@ -1,88 +0,0 @@ -require 'rubygems' - -## -# A collection of text-wrangling methods - -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 = clean_text(text) - - while work.length > wrap do - if work =~ /^(.{0,#{wrap}})[ \n]/ then - result << $1.rstrip - work.slice!(0, $&.length) - else - result << work.slice!(0, wrap) - end - end - - result << work if work.length.nonzero? - result.join("\n").gsub(/^/, " " * indent) - end - - def min3 a, b, c # :nodoc: - if a < b && a < c then - a - elsif b < c then - b - else - c - end - end - - # This code is based directly on the Text gem implementation - # Returns a value representing the "cost" of transforming str1 into str2 - def levenshtein_distance str1, str2 - s = str1 - t = str2 - n = s.length - m = t.length - max = n/2 - - return m if (0 == n) - return n if (0 == m) - return n if (n - m).abs > max - - d = (0..m).to_a - x = nil - - str1.each_char.each_with_index do |char1,i| - e = i+1 - - str2.each_char.each_with_index do |char2,j| - cost = (char1 == char2) ? 0 : 1 - x = min3( - d[j+1] + 1, # insertion - e + 1, # deletion - d[j] + cost # substitution - ) - d[j] = e - e = x - end - - d[m] = x - end - - return x - end -end - |