This file is indexed.

/usr/share/doc/ruby1.9.1-examples/examples/ripper/ruby2html.rb is in ruby1.9.1-examples 1.9.3.484-2ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/ruby1.9.1
# $originalId: ruby2html.rb,v 1.2 2005/09/23 22:53:47 aamine Exp $

TEMPLATE_LINE = __LINE__ + 2
TEMPLATE = <<-EndTemplate
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=<%= encoding %>">
<% if css %>
  <link rel="stylesheet" type="text/css" href="<%= css %>">
<% end %>
  <title><%= File.basename(f.path) %></title>
</head>
<body>
<pre>
<%
    if print_line_number
      Ruby2HTML.compile(f).each_with_index do |line, idx|
%><%= sprintf('%4d  %s', idx+1, line) %><%
      end
    else
%><%= Ruby2HTML.compile(f) %><%
    end
%>
</pre>
</body>
</html>
EndTemplate

require 'ripper'
require 'stringio'
require 'cgi'
require 'erb'
require 'optparse'

def main
  encoding = 'us-ascii'
  css = nil
  print_line_number = false
  parser = OptionParser.new
  parser.banner = "Usage: #{File.basename($0)} [-l] [<file>...]"
  parser.on('--encoding=NAME', 'Character encoding [us-ascii].') {|name|
    encoding = name
  }
  parser.on('--css=URL', 'Set a link to CSS.') {|url|
    css = url
  }
  parser.on('-l', '--line-number', 'Show line number.') {
    print_line_number = true
  }
  parser.on('--help', 'Prints this message and quit.') {
    puts parser.help
    exit 0
  }
  begin
    parser.parse!
  rescue OptionParser::ParseError => err
    $stderr.puts err
    $stderr.puts parser.help
    exit 1
  end
  puts ruby2html(ARGF, encoding, css, print_line_number)
end

class ERB
  attr_accessor :lineno

  remove_method :result
  def result(b)
    eval(@src, b, (@filename || '(erb)'), (@lineno || 1))
  end
end

def ruby2html(f, encoding, css, print_line_number)
  erb = ERB.new(TEMPLATE, nil, '>')
  erb.filename = __FILE__
  erb.lineno = TEMPLATE_LINE
  erb.result(binding())
end

class Ruby2HTML < Ripper::Filter
  def Ruby2HTML.compile(f)
    buf = StringIO.new
    Ruby2HTML.new(f).parse(buf)
    buf.string
  end

  def on_default(event, tok, f)
    f << CGI.escapeHTML(tok)
  end

  def on_kw(tok, f)
    f << %Q[<span class="resword">#{CGI.escapeHTML(tok)}</span>]
  end

  def on_comment(tok, f)
    f << %Q[<span class="comment">#{CGI.escapeHTML(tok.rstrip)}</span>\n]
  end

  def on_tstring_beg(tok, f)
    f << %Q[<span class="string">#{CGI.escapeHTML(tok)}]
  end

  def on_tstring_end(tok, f)
    f << %Q[#{CGI.escapeHTML(tok)}</span>]
  end
end

if $0 == __FILE__
  main
end