キーワード
- cgi (11)
-
cgi
/ session (11) - coverage (7)
-
drb
/ extservm (11) -
drb
/ gw (11) - e2mmap (6)
-
irb
/ completion (11) -
minitest
/ unit (1) - rdoc (11)
-
rdoc
/ generator / json _ index (11) -
rdoc
/ parser / c (11) -
rexml
/ parsers / sax2parser (11) -
rexml
/ parsers / streamparser (11) -
test
/ unit (1) - tsort (11)
-
webrick
/ cgi (11) - yaml (11)
検索結果
-
cgi (139.0)
-
CGI プログラムの支援ライブラリです。
...) Version 1.1
* https://www.w3.org/CGI/
=== 使用例
==== フォームフィールドの値を得る
//emlist[][ruby]{
require "cgi"
cgi = CGI.new
values = cgi['field_name'] # <== 'field_name' の配列
# 'field_name' が指定されていなかったら、 ""を返す。
fields = cgi.keys......gi = CGI.new
params = cgi.params
//}
また CGI#params は毎回同じ Hash オブジェクトを返すので
以下のような使いかたもできます。
//emlist[][ruby]{
cgi.params['new_field_name'] = ["value"] # 新しいパラメータを加える
cgi.params['field_name'] = ["new_value"]......e を使うのが最も簡単です。
//emlist[][ruby]{
# 保存
require 'pstore'
db = PStore.new("query.db")
db.transaction do
db["params"] = cgi.params
end
# 復帰
require 'pstore'
db = PStore.new("query.db")
db.transaction do
cgi.params = db["params"]
end
//}
ただし、PStore は Ruby... -
webrick
/ cgi (97.0) -
一般の CGI 環境で webrick ライブラリのサーブレットと同じように CGI スクリプトを書くための ライブラリです。サーバが WEBrick でなくても使うことが出来ます。
...行されます。
例:
#!/usr/local/bin/ruby
require 'webrick/cgi'
class MyCGI < WEBrick::CGI
def do_GET(req, res)
res["content-type"] = "text/plain"
ret = "hoge\n"
res.body = ret
end
end
MyCGI.new.start()
==== do_XXX メソッド
do_XXX メソッドの XXX には G......に
収納されています。
require "webrick/cgi"
class MyCGI < WEBrick::CGI
def do_GET(req, res)
req.query #=> Hash を返します。
req.query['q']
req.query['num']
end
end
MyCGI.new.start()
同じ名前のフィールドが複数あ......h_data メソッドを使います。
require "webrick/cgi"
class MyCGI < WEBrick::CGI
def do_GET(req, res)
req.query['q'].list #=> フォームの値を保持した文字列の配列を返します。
end
end
MyCGI.new.start()
query メソッドが返す Hash オブジェクト... -
cgi
/ session (67.0) -
CGI のセッション管理を行うライブラリ。
...に、
ブラウザを終了した時点で消滅します。
=== 使い方 (生成)
require 'cgi/session'
cgi = CGI.new
session = CGI::Session.new(cgi)
CGI::Session.new に CGI オブジェクトを渡します。クライアントから渡された
セッション ID はクッキーかク......りました。
=== CGI::HtmlExtension#form の出力
CGI::Session.new 後の CGI::HtmlExtension#form は、セッション ID を
埋め込んだ隠しフィールドを自動出力するようになります。
CGI::Session.new は、これによって生成されたフォームフィールド......セッション維持に利用できます。
#!/usr/bin/ruby
require 'cgi'
require 'cgi/session'
cgi = CGI.new('html3')
File.umask(0077)
session = CGI::Session.new(cgi)
cgi.out('charset'=>'euc-jp') {
html = cgi.html {
cgi.head { cgi.title {'Form Demo'} }
cgi.body {... -
drb
/ gw (55.0) -
drb 通信を中継するゲートウェイ(DRb::GW)と、 中継に必要なオブジェクト識別子変換クラス(DRb::GWIdConv)、 および DRb::DRbObject への拡張が含まれています。
...drb 通信を中継するゲートウェイ(DRb::GW)と、
中継に必要なオブジェクト識別子変換クラス(DRb::GWIdConv)、
および DRb::DRbObject への拡張が含まれています。
このライブラリを利用することで直接通信することが不可能であるよう......プロセスを経て drb によりやりとりできるようになります。
drb による通信とは、オブジェクトをプロセス間でやりとりすること、
およびそのメソッドを呼び出すことです。
中継プロセスが保持している DRb::GW オブジェク......URL も参照してください。
* http://www2a.biglobe.ne.jp/~seki/ruby/drbssh.html
=== Example
この例は drb/gw.rb に含まれているものです。
foo.rb
require 'drb/drb'
class Foo
include DRbUndumped
def initialize(name, peer=nil)
@name = name
@peer = pee... -
drb
/ extservm (49.0) -
DRb::ExtServManager を定義しているライブラリ。
...DRb::ExtServManager を定義しているライブラリ。
DRb::ExtServManager は drb で実現されたサービスブローカーです。
個々のサービスは drb/extserv で定義されている
DRb::ExtServ を用いて実装します。
DRb::ExtServManager
はクライアントの要求......に応じて個々のサービスを
サブプロセスとして起動し、各サービスを表す DRb::ExtServ オブジェクト
をリモートオブジェクトとしてクライアントに渡します。
このライブラリは簡易的なもので、あまりメンテナンスもされて......r.rb が client.rb からサービスを要求された
時に起動されます。また、stop.rbを用いて
server.rb:
require 'drb/drb'
require 'drb/extservm'
Dir.chdir(File.dirname(__FILE__))
# サービスを起動するコマンドを指定する
# コマンドは文字列... -
rdoc (49.0)
-
RDoc は Ruby のドキュメント生成を行うためのライブラリです。rdoc という ドキュメント生成のためのコマンドも含んでいます。
...pattern にマッチするディレクトリおよびファイルを処理の対象から取り除きます。
: --extension new=old
ファイル名の末尾が .new であるものを、末尾が .old であるものとして取
り扱います。例えば '--extension cgi=rb' とすれば......source directory. Default is
the current directory.
: --page-dir dir
Directory where guides, your FAQ or other pages not associated with
a class live. Set this when you don't store such files at your
project root. NOTE: Do not use the same file name in the page dir
and the root of your......。これをオフにしたい場合は all 修飾
子を加えます。
//emlist{
module SM #:nodoc:
class Input
end
end
module Markup #:nodoc: all
class Output
end
end
//}
以上のコードでは、SM::Input のドキュメントのみが出力され... -
rexml
/ parsers / streamparser (43.0) -
ストリーム式の XML パーサ。
...ソッドをオーバーライドしたクラスのオブジェクトを
コールバックオブジェクトとして REXML::Parsers::StreamParser.new
に渡します。
REXML::Parsers::StreamParser#parse を呼び出すと
パースが開始しその結果によってコールバックが呼び......意してください。
//emlist[][ruby]{
require 'rexml/parsers/baseparser'
require 'rexml/parsers/streamparser'
require 'rexml/streamlistener'
class Listener
include REXML::StreamListener
def initialize
@events = []
end
def text(text)
@events << "text[#{text}]"
end
def tag_......="red">
<comment>comment here</comment>
</member>
<member name="banana" color="yellow"/>
</members>
EOS
listener = Listener.new
REXML::Parsers::StreamParser.new(xml, listener).parse
listener.events
# => ["tag_start[members]",
# "text[\n ]",
# "tag_start[member]",
# "text[\n ]... -
yaml (43.0)
-
構造化されたデータを表現するフォーマットであるYAML (YAML Ain't Markup Language) を扱うためのライブラリです。
...35,
"birthday" => Date.new(1970, 1, 1)
}
str_r["Suzuki Suneo"] = {
"age" => 13,
"birthday" => Date.new(1992, 12, 21)
}
p str_r == YAML.load(str_l) # => true
//}
//emlist[例3: 構造化されたログ][ruby]{
require 'yaml'
require 'stringio'
strio_r = StringIO.new(<<~YAML_EOT)
---
tim......EOS
# => :foo
//}
yaml では、Ruby 向けに以下のローカルタグを扱えます。
* !ruby/array: Array オブジェクト
* !ruby/class: Class オブジェクト
* !ruby/hash: Hash オブジェクト
* !ruby/module: Module オブジェクト
* !ruby/regexp: Regexp オブジェク......mlist[例1][ruby]{
require 'yaml'
class Foo
def initialize
@bar = "test"
end
end
p YAML.load(<<~EOS)
---
!ruby/object:Foo
bar: "test.modified"
EOS
# => #<Foo:0xf743f754 @bar="test.modified">
//}
//emlist[例2][ruby]{
require 'yaml'
module Foo
class Bar
end
end
p YAML.load(<<~E... -
drb (31.0)
-
分散オブジェクトプログラミングのためのライブラリです。
...ができます。これらはすべて透過的に行われます。
リモートプロセスにあるオブジェクトはローカルには DRb::DRbObject の
インスタンスとして表現されます。このオブジェクトはリモートオブジェクトの
proxy のように振舞......、すべては実行時に解決されます。
リモートプロセスからのメソッド呼出しはそれを受け取ったプロセスの
DRb::DRbServer オブジェクトが処理します。
受け取ったメッセージからメソッド呼出し情報を取り出し、ローカルに......mixin を必要としたりは
しません。
オブジェクトの特定は DRb::DRbServer が自動でします。そのため
オブジェクトの登録のようなことは通常必要ありません。
DRb::DRbServer に URI(例: druby://example.com:8787)を関連付けること
で、他... -
e2mmap (31.0)
-
例外クラスに特定のエラーメッセージ用フォーマットを関連づけるためのライブラリです。
...eMapper を extend すれば、
def_e2message メソッドや def_exception メソッドが使えます。
これらで例外クラスとメッセージを関連づけることができます。
例:
class Foo
extend Exception2MessageMapper
def_e2message ExistingExceptionClass, "message.......f_exception :NewExceptionClass, "message...", StandardError
...
end
foo = Foo.new
foo.Fail ....
2. 何度も使いたい例外クラスは、クラスの代わりにモジュールで定義して、
それを include して使います。
例:
module ErrorMod
extend Exception2M......essageMapper
def_e2message ExistingExceptionClass, "message..."
def_exception :NewExceptionClass, "message...", StandardError
...
end
class Foo
include ErrorMod
...
end
foo = Foo.new
foo.Fail ....
3. 例外を設定したクラスのインスタンス以外から例...