[#4754] Now,I am starting ruby. — mamoru@... (Mamoru Matushita)

先日、初めて投稿したつもりだったのですが間違えて

14 messages 1997/10/02

[#4891] mixin - singleton method inheritance, const etc... — shugo@... (Shugo Maeda)

前田です。

13 messages 1997/10/10

[#5000] ruby 1.0-971015 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

14 messages 1997/10/15

[#5056] RubyでOODB — hisanori@...

松尾です。

20 messages 1997/10/20
[#5057] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[#5065] Re: RubyでOODB — hisanori@... 1997/10/20

松尾です。

[#5066] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[ruby-list:4987] cgi-lib.rb

From: 青山 和光 <PXN11625@...>
Date: 1997-10-15 00:56:55 UTC
List: ruby-list #4987
とりあえず HTML 3.2 のタグをすべて入れてみました。

#PCDATA だけは PCDATA にしてしまったので、使えません。また、サンプルを
書いていて気がついたのですが、ruby は Perl と異なり文字列中に式を入れ
る事が可能なので、そちらの方が便利かもしれません。

しかし、まあ、無いよりはあった方が良いですし、なんといっても HTML のタ
グだらけよりはずっと ruby らしく見えたりします。

ところで、このやり方だとイテレータが大量に出てきますが、どのくらいのオ
ーバーヘッドなんでしょうか? 文字列中に式を埋めこむ方が早いような気も
しますが。


#!/usr/local/bin/ruby
require "cgi-lib.rb"
include Html32
query = CGI.new
if query.keys.include? "text"
  header
  html do
    head do
      title do print "query result" end
    end
    body do
      a %|HREF= "http://#{ENV['HTTP_HOST']}#{ENV['SCRIPT_NAME']}"| do
        print "retry"
      end
      h1 do print "query result" end
      pre do print query['text'] end
      hr
    end
  end
else
  header
  html do
    head do
      title do print "form test" end
    end
    body do
      h1 do print "form test" end
      form 'METHOD="POST"' do
        textarea 'NAME="text" ROWS=25 COLS=80' do
          print "form test"
        end
        input 'TYPE="submit"'
      end
    end
  end
end


module Html32

  ['html', 'head', 'body', 'plaintext', 'title', 'isindex', 'base', 'link',
    'meta', 'style', 'script', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pcdata',
    'tt', 'i', 'b', 'u', 's', 'big', 'small', 'sub', 'sup', 'em', 'strong',
    'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'q', 'a', 'img', 'applet',
    'object', 'font', 'basefont', 'br', 'script', 'style', 'map', 'span',
    'bdo', 'input', 'select', 'textarea', 'label', 'p', 'ul', 'ol', 'dir',
    'menu', 'pre', 'xmp', 'listing', 'dl', 'div', 'center', 'blockquote',
    'form', 'isindex', 'hr', 'table', 'fieldset', 'address'].each do |tag|
      eval "
        def #{tag}(opts = '')
          print \"<#{tag.upcase} \#{opts}>\"
          if iterator?
            yield
            print \"</#{tag.upcase}>\"
          end
        end
        public :#{tag}
      "
  end

end


青山 和光 Wakou Aoyama <pxn11625@niftyserve.or.jp>

In This Thread

Prev Next