[#1263] Draft of the updated Ruby FAQ — Dave Thomas <Dave@...>

33 messages 2000/02/08

[#1376] Re: Scripting versus programming — Andrew Hunt <andy@...>

Conrad writes:

13 messages 2000/02/15

[#1508] Ruby/GTK and the mainloop — Ian Main <imain@...>

17 messages 2000/02/19
[#1544] Re: Ruby/GTK and the mainloop — Yasushi Shoji <yashi@...> 2000/02/23

Hello Ian,

[#1550] Re: Ruby/GTK and the mainloop — Ian Main <imain@...> 2000/02/23

On Wed, Feb 23, 2000 at 02:56:10AM -0500, Yasushi Shoji wrote:

[#1516] Ruby: PLEASE use comp.lang.misc for all Ruby programming/technical questions/discussions!!!! — "Conrad Schneiker" <schneiker@...>

((FYI: This was sent to the Ruby mail list.))

10 messages 2000/02/19

[#1569] Re: Ruby: constructors, new and initialise — Yukihiro Matsumoto <matz@...>

The following message is a courtesy copy of an article

12 messages 2000/02/25

[ruby-talk:01397] Re: Ruby Language Reference Manual--Glossary

From: gotoken@... (GOTO Kentaro)
Date: 2000-02-15 20:16:31 UTC
List: ruby-talk #1397
In message "[ruby-talk:01373] Ruby Language Reference Manual--Glossary"
    on 00/02/15, "Conrad Schneiker" <schneiker@jump.net> writes:

>Also, does anyone have a ruby program that will cleanly combine multiple
>html file documents into one file to facilitate printing and (browser)
>searching? (Humm, that would be a good item to add to the Ruby Cookbook
>FAQ.)

I've enjoyed hacking up it :)

-- gotoken

#! /usr/bin/env ruby
#
# combman.rb - combines ruby-man files into one html file
#
# Usage:
#   ls -1 SOMEWHERE/ruby-man-1.4/*.html > ~/index.txt
#   (Edit ~/index.txt to arrange.  However, index.html is always put at 
#    the top.)
#   ruby combman.rb `cat ~/index.txt` > ~/ruby-man-1.4.html
#
# Or simply:
#   ruby combman.rb SOMEWHERE/ruby-man-1.4/*.html > ~/ruby-man-1.4.html

def main
  index_html = ARGV.grep(/index\.html/)[0]
  ARGV.delete(index_html)

  gets_title(*ARGV)
  puts_header
  puts "<BODY>"
  puts_index(index_html)
  puts_filetable(*ARGV)
  puts_sections(*ARGV)
  puts %Q{<P align="right">generated by combman.rb<BR>#{Time.now}</P>}
  puts "</BODY>"
end

def gets_title(*argv)
  $title = {}
  argv.each do |fn|
    $title[fn] = 
      open(fn).read.scan(%r{<title>([^<]*)</title>}i)[0][0].delete("\n")
  end
end

def puts_header
  puts <<EOS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>Ruby reference manual (combined version)</TITLE></HEAD>
EOS
end

def puts_index(index)
  puts_file(index)
end

def puts_filetable(*argv)
  puts "<H2>Table of files</H2>\n<UL>"

  argv.each do |fn|
    t = $title[fn]
    f = File.basename(fn)
    puts <<-EOS
    <LI><a href=\"##{f}\">#{(f+'</a>').ljust(25).tr(" ", ".")} #{t}</LI>
    EOS
  end
  puts "</UL>"
end

def puts_sections(*argv)
  argv.each do |fn|
    puts_file(fn)
  end
end

def puts_file(fn)
  f = File.basename(fn)
  puts "<A name=\"#{f}\"></A>"
  text = open(fn).read

  # delete head elements
  text.gsub!(%r{<head>.*</head>}ip, '')

  # delete outside of the body element
  text.gsub!(%r{(<body|</body|<html|</html|<!doctype)[^>]*>\s*}ip, '')

  # delete navigation anchors
  text.gsub!(%r{\s*<a\s+href="index\.html"\s*>\s*index\s*</a>\s*}ip, "\\& - \\&")
  text.gsub!(%r{<A\s+HREF="[^"]+">[^<]+</A>(\s+-\s+<A HREF="[^"]+">[^<]+</A>)+}ip, '')
  text.gsub!(%r{<HR>(\s*<HR>)*}ip, '<HR>')

  # delete mailto
  text.gsub!(%r{<p[^>]*>\s*<a[^>]*matz@[^>]*>matz@[^<]+</a>\s*</p>\s*}ip, '')

  # fix anchors
  text.gsub!(%r{(<a\s+[^>]*href\s*=\s*"#)([^"]+"[^>]*>)}ip, "\\1#{f}_\\2")
  text.gsub!(%r{(<a\s+[^>]*href\s*=\s*")([^"]+\.html"[^>]*>)}ip, "\\1#\\2")
  text.gsub!(%r{(<a\s+[^>]*href\s*=\s*")([^"]+\.html)#([^"]+"[^>]*>)}ip, "\\1#\\2_\\3")
  text.gsub!(%r{(<a\s+[^>]*name\s*=\s*")([^"]+"[^>]*>)}ip, "\\1#{f}_\\2")
  puts text
end

main

In This Thread