ライブラリ
- ビルトイン (144)
- readline (12)
-
webrick
/ httpproxy (12) -
webrick
/ httpserver (12) -
webrick
/ httpservlet / abstract (84)
クラス
- Mutex (2)
- Thread (16)
-
Thread
:: Mutex (30) -
WEBrick
:: HTTPServlet :: AbstractServlet (72)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - AbstractServlet (12)
- HTTPProxyServer (12)
- HTTPServer (12)
- Interrupt (12)
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 2 . 0 (11) - Status (12)
-
do
_ DELETE (12) -
do
_ GET (12) -
do
_ HEAD (12) -
do
_ OPTIONS (12) -
do
_ POST (12) -
do
_ PUT (12) -
handle
_ interrupt (12) -
ignore
_ deadlock= (4) - kill (12)
- lock (10)
-
rb
_ thread _ trap _ eval (12) -
rb
_ trap _ eval (12) - readline (12)
-
ruby 1
. 6 feature (12) - signame (12)
- synchronize (12)
- unlock (10)
- webrick (12)
- セキュリティモデル (12)
- 終了処理 (12)
検索結果
先頭5件
-
Thread
. handle _ interrupt(hash) { . . . } -> object (6106.0) -
スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。
...り込み」とは、非同期イベントや Thread#raise や
Thread#kill、Signal.#trap(未サポート)、メインスレッドの終了
(メインスレッドが終了すると、他のスレッドも終了されます)を意味します。
@param hash 例外クラスがキー、割り込みの......り込みが発生します。
: :never
まったく割り込みません。
「ブロッキング処理」とは、読み込み処理や書き込み処理のような呼び出し元
のスレッドをブロックするような処理を意味します。CRuby の実装では、GVL
を解放し......同期割り込みは再度有効にされるまで延期されます。本
メソッドは sigprocmask(3) に似ています。
@return ブロックの評価結果を返します。
@raise ArgumentError ブロックを指定しなかった場合に発生します。
=== 注意
非同期割り... -
Thread
:: Mutex # synchronize { . . . } -> object (6106.0) -
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
...@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
//emlist[例][ruby]{
m = Mutex.new
r......esult = m.synchronize do
m.locked? # => true
# critical part
"result"
end
m.locked? # => false
result # => "result"
//}... -
Interrupt (6006.0)
-
SIGINT シグナルを捕捉していないときに SIGINT シグナルを受け取ると発生します。 SIGINT 以外のシグナルを受信したときに発生する例外については SignalException を参照してください。
...てください。
使用例
=begin
#SIGINTを捕捉したい場合
Signal.trap('INT'){
print "\nINTを捕捉した。\n"
exit 1
}
=end
begin
begin
print "z"
$stdout.flush
sleep(1)
end while true
rescue Interrupt
print "!!\n"
exit 1
end... -
WEBrick
:: HTTPProxyServer (6006.0) -
プロクシの機能を提供するクラスです。CONNECT メソッドにも対応しています。
...います。
* https://magazine.rubyist.net/articles/0002/0002-WEBrickProxy.html
以下は完全に動作するプロクシサーバの例です。
require 'webrick'
require 'webrick/httpproxy'
s = WEBrick::HTTPProxyServer.new(Port: 8080)
Signal.trap('INT') do
s.shutdown
end
s.start... -
WEBrick
:: HTTPServer (6006.0) -
HTTP サーバの機能を提供するクラスです。
...。
require 'webrick'
srv = WEBrick::HTTPServer.new({:DocumentRoot => '/home/username/public_html/',
:BindAddress => '127.0.0.1',
:Port => 10080})
srv.mount('/hoge.pl', WEBrick::HTTPServlet::CGIHandler, 'really_executed_script.rb')......Signal.trap(:INT){ srv.shutdown }
srv.start... -
WEBrick
:: HTTPServlet :: AbstractServlet (6006.0) -
サーブレットの抽象クラスです。実装は AbstractServlet のサブクラスで行います。
...bstractServlet のサブクラスで行います。
サーブレットは以下のように使われます。WEBrick::HTTPServlet::CGIHandler は
webrick/httpservlet/cgihandler で提供されているサーブレットです。
CGIHandler は AbstractServlet のサブクラスです。
require '......webrick'
srv = WEBrick::HTTPServer.new({ :DocumentRoot => './',
:BindAddress => '127.0.0.1',
:Port => 20080})
srv.mount('/view.cgi', WEBrick::HTTPServlet::CGIHandler, 'view.rb')
trap("INT"){ srv.shutdown }
srv.start
上のスク......で view.rb は実行されます。
(1) サーバのパス /view.cgi と CGIHandler がマウントにより結びつけられます。
(2) パス /view.cgi にアクセスがあるたびにサーバ(WEBrick::HTTPServer オブジェクト)は 'view.rb'
を引数として CGIHandler オブ... -
webrick (6006.0)
-
汎用HTTPサーバーフレームワークです。HTTPサーバが簡単に作れます。
...クです。HTTPサーバが簡単に作れます。
WEBrick はサーブレットによって機能します。サーブレットとは
サーバの機能をオブジェクト化したものです。
ファイルを読み込んで返す・forkしてスクリプトを実行する・テンプレー......トは WEBrick::HTTPServlet::AbstractServlet の
サブクラスのインスタンスとして実装されます。
WEBrick はセッション管理の機能を提供しません。
NOTE: WEBrick は Ruby 3.0 で標準ライブラリから削除されました。Ruby 3.0 以降で WEBrick を使......TPServer.new({ :DocumentRoot => './',
:BindAddress => '127.0.0.1',
:Port => 20080})
srv.mount('/view.cgi', WEBrick::HTTPServlet::CGIHandler, 'view.rb')
srv.mount('/foo.html', WEBrick::HTTPServlet::FileHandler, 'hoge.html')
trap("IN... -
WEBrick
:: HTTPServlet :: AbstractServlet # do _ DELETE(request , response) -> () (3206.0) -
自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。
...自身の service メソッドから HTTP のリクエストに応じて
呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し
なければいけません。返り値は特に規定されていません。
クライアントが使う可......能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。
クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。
実装されていない HTTP メソッドであっ......Servlet::AbstractServlet
def do_GET(req, res)
res.body = 'hoge'
end
end
srv = WEBrick::HTTPServer.new({ :DocumentRoot => './',
:BindAddress => '127.0.0.1',
:Port => 20080})
srv.mount('/', HogeServlet)
trap("... -
WEBrick
:: HTTPServlet :: AbstractServlet # do _ GET(request , response) -> () (3206.0) -
自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。
...自身の service メソッドから HTTP のリクエストに応じて
呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し
なければいけません。返り値は特に規定されていません。
クライアントが使う可......能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。
クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。
実装されていない HTTP メソッドであっ......Servlet::AbstractServlet
def do_GET(req, res)
res.body = 'hoge'
end
end
srv = WEBrick::HTTPServer.new({ :DocumentRoot => './',
:BindAddress => '127.0.0.1',
:Port => 20080})
srv.mount('/', HogeServlet)
trap("... -
WEBrick
:: HTTPServlet :: AbstractServlet # do _ HEAD(request , response) -> () (3206.0) -
自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。
...自身の service メソッドから HTTP のリクエストに応じて
呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し
なければいけません。返り値は特に規定されていません。
クライアントが使う可......能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。
クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。
実装されていない HTTP メソッドであっ......Servlet::AbstractServlet
def do_GET(req, res)
res.body = 'hoge'
end
end
srv = WEBrick::HTTPServer.new({ :DocumentRoot => './',
:BindAddress => '127.0.0.1',
:Port => 20080})
srv.mount('/', HogeServlet)
trap("...