PHP 8.2.31
Preview: text.rb Size: 1.88 KB
//proc/thread-self/root/opt/alt/ruby23/lib64/ruby/2.3.0/rubygems/text.rb

# frozen_string_literal: true
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

    return m if (0 == n)
    return n if (0 == m)

    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

Directory Contents

Dirs: 11 × Files: 59

Name Size Perms Modified Actions
commands DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
core_ext DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
ext DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
package DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
request DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
resolver DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
security DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
source DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
ssl_certs DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
util DIR
- drwxr-xr-x 2024-03-03 22:43:28
Edit Download
3.02 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
7.23 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
13.68 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
4.66 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
1.66 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
12.66 KB lrw-r--r-- 2017-11-30 14:29:32
Edit Download
4.04 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
8.55 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
14.07 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
5.56 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
1.73 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
3.06 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
3.15 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
6.23 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
461 B lrw-r--r-- 2016-08-24 15:28:23
Edit Download
4.15 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
1.99 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
11.04 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
23.49 KB lrw-r--r-- 2017-09-09 13:37:16
Edit Download
4.26 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
337 B lrw-r--r-- 2016-08-24 15:28:23
Edit Download
311 B lrw-r--r-- 2016-08-24 15:28:23
Edit Download
6.06 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
3.40 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
1.38 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
2.41 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
15.99 KB lrw-r--r-- 2018-02-16 16:21:44
Edit Download
3.80 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
1.93 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
6.26 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
300 B lrw-r--r-- 2016-08-24 15:28:23
Edit Download
793 B lrw-r--r-- 2016-08-24 15:28:23
Edit Download
7.74 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
11.62 KB lrw-r--r-- 2017-09-09 13:37:16
Edit Download
6.89 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
9.74 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
6.52 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
7.75 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
1.11 KB lrw-r--r-- 2017-11-30 14:29:32
Edit Download
21.00 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
22.96 KB lrw-r--r-- 2018-02-16 16:21:44
Edit Download
5.24 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
2.50 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
141 B lrw-r--r-- 2016-08-24 15:28:23
Edit Download
123 B lrw-r--r-- 2016-08-24 15:28:23
Edit Download
80.27 KB lrw-r--r-- 2018-02-16 16:21:44
Edit Download
6.34 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
4.66 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
2.12 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
39.35 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
8.63 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
1.88 KB lrw-r--r-- 2017-09-09 13:37:16
Edit Download
8.74 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
792 B lrw-r--r-- 2016-08-24 15:28:23
Edit Download
14.48 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
2.60 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
4.21 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
11.26 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download
1.86 KB lrw-r--r-- 2016-08-24 15:28:23
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).