GRAYBYTE WORDPRESS FILE MANAGER7801

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/ruby20/lib64/ruby/2.0.0/rdoc/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby20/lib64/ruby/2.0.0/rdoc//text.rb
# coding: utf-8

##
# For RDoc::Text#to_html

require 'strscan'

##
# For RDoc::Text#snippet

begin
  gem 'json'
rescue Gem::LoadError
end

require 'json'

##
# Methods for manipulating comment text

module RDoc::Text

  ##
  # Maps markup formats to classes that can parse them.  If the format is
  # unknown, "rdoc" format is used.

  MARKUP_FORMAT = {
    'markdown' => RDoc::Markdown,
    'rdoc'     => RDoc::Markup,
    'rd'       => RDoc::RD,
    'tomdoc'   => RDoc::TomDoc,
  }

  MARKUP_FORMAT.default = RDoc::Markup

  ##
  # Maps an encoding to a Hash of characters properly transcoded for that
  # encoding.
  #
  # See also encode_fallback.

  TO_HTML_CHARACTERS = Hash.new do |h, encoding|
    h[encoding] = {
      :close_dquote => encode_fallback('”', encoding, '"'),
      :close_squote => encode_fallback('’', encoding, '\''),
      :copyright    => encode_fallback('©', encoding, '(c)'),
      :ellipsis     => encode_fallback('…', encoding, '...'),
      :em_dash      => encode_fallback('—', encoding, '---'),
      :en_dash      => encode_fallback('–', encoding, '--'),
      :open_dquote  => encode_fallback('“', encoding, '"'),
      :open_squote  => encode_fallback('‘', encoding, '\''),
      :trademark    => encode_fallback('®', encoding, '(r)'),
    }
  end if Object.const_defined? :Encoding

  ##
  # Transcodes +character+ to +encoding+ with a +fallback+ character.

  def self.encode_fallback character, encoding, fallback
    character.encode(encoding, :fallback => { character => fallback },
                     :undef => :replace, :replace => fallback)
  end

  ##
  # Expands tab characters in +text+ to eight spaces

  def expand_tabs text
    expanded = []

    text.each_line do |line|
      nil while line.gsub!(/(?:\G|\r)((?:.{8})*?)([^\t\r\n]{0,7})\t/) do
        r = "#{$1}#{$2}#{' ' * (8 - $2.size)}"
        r.force_encoding text.encoding if Object.const_defined? :Encoding
        r
      end

      expanded << line
    end

    expanded.join
  end

  ##
  # Flush +text+ left based on the shortest line

  def flush_left text
    indent = 9999

    text.each_line do |line|
      line_indent = line =~ /\S/ || 9999
      indent = line_indent if indent > line_indent
    end

    empty = ''
    empty.force_encoding text.encoding if Object.const_defined? :Encoding

    text.gsub(/^ {0,#{indent}}/, empty)
  end

  ##
  # Convert a string in markup format into HTML.
  #
  # Requires the including class to implement #formatter

  def markup text
    parse(text).accept formatter
  end

  ##
  # Strips hashes, expands tabs then flushes +text+ to the left

  def normalize_comment text
    return text if text.empty?

    text = strip_stars    text
    text = strip_hashes   text
    text = expand_tabs    text
    text = flush_left     text
    text = strip_newlines text
    text
  end

  ##
  # Normalizes +text+ then builds a RDoc::Markup::Document from it

  def parse text, format = 'rdoc'
    return text if RDoc::Markup::Document === text
    return text.parse if RDoc::Comment === text

    text = normalize_comment text # TODO remove, should not be necessary

    return RDoc::Markup::Document.new if text =~ /\A\n*\z/

    MARKUP_FORMAT[format].parse text
  end

  ##
  # The first +limit+ characters of +text+ as HTML

  def snippet text, limit = 100
    document = parse text

    RDoc::Markup::ToHtmlSnippet.new(limit).convert document
  end

  ##
  # Strips leading # characters from +text+

  def strip_hashes text
    return text if text =~ /^(?>\s*)[^\#]/

    empty = ''
    empty.force_encoding text.encoding if Object.const_defined? :Encoding

    text.gsub(/^\s*(#+)/) { $1.tr '#', ' ' }.gsub(/^\s+$/, empty)
  end

  ##
  # Strips leading and trailing \n characters from +text+

  def strip_newlines text
    text.gsub(/\A\n*(.*?)\n*\z/m) do $1 end # block preserves String encoding
  end

  ##
  # Strips /* */ style comments

  def strip_stars text
    return text unless text =~ %r%/\*.*\*/%m

    encoding = text.encoding if Object.const_defined? :Encoding

    text = text.gsub %r%Document-method:\s+[\w:.#=!?]+%, ''

    space = ' '
    space.force_encoding encoding if encoding

    text.sub!  %r%/\*+%       do space * $&.length end
    text.sub!  %r%\*+/%       do space * $&.length end
    text.gsub! %r%^[ \t]*\*%m do space * $&.length end

    empty = ''
    empty.force_encoding encoding if encoding
    text.gsub(/^\s+$/, empty)
  end

  ##
  # Converts ampersand, dashes, ellipsis, quotes, copyright and registered
  # trademark symbols in +text+ to properly encoded characters.

  def to_html text
    if Object.const_defined? :Encoding then
      html = ''.encode text.encoding

      encoded = RDoc::Text::TO_HTML_CHARACTERS[text.encoding]
    else
      html = ''
      encoded = {
        :close_dquote => '”',
        :close_squote => '’',
        :copyright    => '©',
        :ellipsis     => '…',
        :em_dash      => '—',
        :en_dash      => '–',
        :open_dquote  => '“',
        :open_squote  => '‘',
        :trademark    => '®',
      }
    end

    s = StringScanner.new text
    insquotes = false
    indquotes = false
    after_word = nil

    until s.eos? do
      case
      when s.scan(/<(tt|code)>.*?<\/\1>/) then # skip contents of tt
        html << s.matched.gsub('\\\\', '\\')
      when s.scan(/<(tt|code)>.*?/) then
        warn "mismatched <#{s[1]}> tag" # TODO signal file/line
        html << s.matched
      when s.scan(/<[^>]+\/?s*>/) then # skip HTML tags
        html << s.matched
      when s.scan(/\\(\S)/) then # unhandled suppressed crossref
        html << s[1]
        after_word = nil
      when s.scan(/\.\.\.(\.?)/) then
        html << s[1] << encoded[:ellipsis]
        after_word = nil
      when s.scan(/\(c\)/) then
        html << encoded[:copyright]
        after_word = nil
      when s.scan(/\(r\)/) then
        html << encoded[:trademark]
        after_word = nil
      when s.scan(/---/) then
        html << encoded[:em_dash]
        after_word = nil
      when s.scan(/--/) then
        html << encoded[:en_dash]
        after_word = nil
      when s.scan(/&quot;|"/) then
        html << encoded[indquotes ? :close_dquote : :open_dquote]
        indquotes = !indquotes
        after_word = nil
      when s.scan(/``/) then # backtick double quote
        html << encoded[:open_dquote]
        after_word = nil
      when s.scan(/''/) then # tick double quote
        html << encoded[:close_dquote]
        after_word = nil
      when s.scan(/'/) then # single quote
        if insquotes
          html << encoded[:close_squote]
          insquotes = false
        elsif after_word
          # Mary's dog, my parents' house: do not start paired quotes
          html << encoded[:close_squote]
        else
          html << encoded[:open_squote]
          insquotes = true
        end

        after_word = nil
      else # advance to the next potentially significant character
        match = s.scan(/.+?(?=[<\\.("'`&-])/) #"

        if match then
          html << match
          after_word = match =~ /\w$/
        else
          html << s.rest
          break
        end
      end
    end

    html
  end

  ##
  # Wraps +txt+ to +line_len+

  def wrap(txt, line_len = 76)
    res = []
    sp = 0
    ep = txt.length

    while sp < ep
      # scan back for a space
      p = sp + line_len - 1
      if p >= ep
        p = ep
      else
        while p > sp and txt[p] != ?\s
          p -= 1
        end
        if p <= sp
          p = sp + line_len
          while p < ep and txt[p] != ?\s
            p += 1
          end
        end
      end
      res << txt[sp...p] << "\n"
      sp = p
      sp += 1 while sp < ep and txt[sp] == ?\s
    end

    res.join.strip
  end

end


[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:53:08
root / root
0755
context
--
March 03 2024 22:43:41
root / linksafe
0755
generator
--
March 03 2024 22:43:41
root / linksafe
0755
markdown
--
March 03 2024 22:43:41
root / linksafe
0755
markup
--
March 03 2024 22:43:41
root / linksafe
0755
parser
--
March 03 2024 22:43:41
root / linksafe
0755
rd
--
March 03 2024 22:43:41
root / linksafe
0755
ri
--
March 03 2024 22:43:41
root / linksafe
0755
stats
--
March 03 2024 22:43:41
root / linksafe
0755
alias.rb
2.093 KB
November 27 2012 04:28:14
root / linksafe
0644
anon_class.rb
0.139 KB
November 27 2012 04:28:14
root / linksafe
0644
any_method.rb
5.901 KB
January 23 2013 01:02:24
root / linksafe
0644
attr.rb
3.729 KB
January 23 2013 01:02:24
root / linksafe
0644
class_module.rb
19.149 KB
January 23 2013 01:02:24
root / linksafe
0644
code_object.rb
7.712 KB
January 23 2013 01:02:24
root / linksafe
0644
code_objects.rb
0.118 KB
November 27 2012 04:28:14
root / linksafe
0644
comment.rb
5.395 KB
November 27 2012 08:54:03
root / linksafe
0644
constant.rb
3.345 KB
November 27 2012 08:54:03
root / linksafe
0644
context.rb
28.258 KB
December 06 2012 06:20:50
root / linksafe
0644
cross_reference.rb
5.811 KB
January 04 2013 06:16:13
root / linksafe
0644
encoding.rb
2.744 KB
December 18 2012 08:24:57
root / linksafe
0644
erb_partial.rb
0.361 KB
November 27 2012 04:28:14
root / linksafe
0644
erbio.rb
0.775 KB
May 15 2011 11:55:52
root / linksafe
0644
extend.rb
2.525 KB
November 27 2012 04:28:14
root / linksafe
0644
generator.rb
1.723 KB
November 27 2012 04:28:14
root / linksafe
0644
ghost_method.rb
0.111 KB
November 27 2012 04:28:14
root / linksafe
0644
include.rb
2.614 KB
November 27 2012 04:28:14
root / linksafe
0644
known_classes.rb
2.58 KB
June 29 2011 21:17:31
root / linksafe
0644
markdown.rb
380.091 KB
December 01 2012 03:58:39
root / linksafe
0644
markup.rb
28.307 KB
November 27 2012 04:28:14
root / linksafe
0644
meta_method.rb
0.097 KB
November 27 2012 04:28:14
root / linksafe
0644
method_attr.rb
8.567 KB
November 27 2012 04:28:14
root / linksafe
0644
normal_class.rb
2.059 KB
November 27 2012 04:28:14
root / linksafe
0644
normal_module.rb
1.356 KB
November 27 2012 04:28:14
root / linksafe
0644
options.rb
28.488 KB
December 11 2012 07:44:56
root / linksafe
0644
parser.rb
7.826 KB
January 04 2013 06:16:13
root / linksafe
0644
rd.rb
3.538 KB
November 27 2012 04:28:14
root / linksafe
0644
rdoc.rb
13.254 KB
December 13 2012 07:58:47
root / linksafe
0644
require.rb
0.913 KB
November 27 2012 04:28:14
root / linksafe
0644
ri.rb
0.308 KB
November 27 2012 04:28:14
root / linksafe
0644
ruby_lex.rb
27.231 KB
December 18 2012 07:31:36
root / linksafe
0644
ruby_token.rb
11.214 KB
December 18 2012 07:31:36
root / linksafe
0644
rubygems_hook.rb
4.912 KB
December 14 2012 05:16:56
root / linksafe
0644
servlet.rb
10.831 KB
February 05 2013 08:24:20
root / linksafe
0644
single_class.rb
0.322 KB
November 27 2012 04:28:14
root / linksafe
0644
stats.rb
9.784 KB
November 27 2012 04:28:14
root / linksafe
0644
store.rb
22.318 KB
January 25 2013 00:15:08
root / linksafe
0644
task.rb
7.66 KB
November 27 2012 04:28:14
root / linksafe
0644
test_case.rb
3.464 KB
November 29 2012 23:34:29
root / linksafe
0644
text.rb
7.594 KB
January 30 2015 07:13:13
root / linksafe
0644
token_stream.rb
2.465 KB
November 27 2012 04:28:14
root / linksafe
0644
tom_doc.rb
5.695 KB
January 04 2013 06:16:13
root / linksafe
0644
top_level.rb
5.404 KB
January 23 2013 01:02:24
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF