PHP 8.2.31
Preview: text.rb Size: 1.86 KB
/proc/thread-self/root/opt/alt/ruby26/lib64/ruby/2.6.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]/
        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
      a
    elsif b < c
      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: 62

Name Size Perms Modified Actions
commands DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
core_ext DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
ext DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
package DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
request DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
resolver DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
security DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
source DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
ssl_certs DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
util DIR
- drwxr-xr-x 2024-03-03 22:47:39
Edit Download
3.02 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
7.34 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.78 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
14.06 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.99 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1014 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
12.61 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.91 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
8.42 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
14.37 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
5.52 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.73 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
3.06 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.63 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
6.62 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
460 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
5.20 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.18 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
11.27 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
26.37 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.12 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
336 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
310 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
6.26 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
3.54 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.38 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.41 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
17.52 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
3.80 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.87 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
6.25 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
300 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
794 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
523 B lrw-r--r-- 2023-07-26 15:01:41
Edit Download
11.38 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
8.69 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
11.93 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
7.38 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
9.44 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.55 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
21.24 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.06 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
22.72 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
5.20 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.53 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
274 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
272 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
72.70 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
10.69 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
6.51 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.81 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.12 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
43.33 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
8.39 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
1.86 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
8.91 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
792 B lrw-r--r-- 2022-04-12 11:50:11
Edit Download
13.29 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.70 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
4.21 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
12.22 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download
2.02 KB lrw-r--r-- 2022-04-12 11:50:11
Edit Download

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