ライブラリ
- ビルトイン (72)
モジュール
- Kernel (24)
- ObjectSpace (24)
- Signal (24)
キーワード
- Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (12)
- Ruby用語集 (12)
-
at
_ exit (12) -
define
_ finalizer (24) - trap (24)
- セキュリティモデル (2)
- 制御構造 (12)
- 終了処理 (12)
検索結果
-
制御構造 (23060.0)
-
制御構造 条件分岐: * if * unless * case 繰り返し: * while * until * for * break * next * redo * retry 例外処理: * raise * begin その他: * return * BEGIN * END
...の右辺に置くと
syntax error になります)。
RubyはC言語やPerlから引き継いだ制御構造を持ちますが、
その他にd:spec/call#blockという
制御構造の抽象化を援助する機能があります。ブロック付きメソッド呼び出しは
繰り返しを始......e {a: 1, b: 2, c: 3}
in a: Integer => m
"matched: #{m}"
else
"not matched"
end
# => "matched: 1"
//}
パターンマッチ構文についてはspec/pattern_matchingで説明しています。
=== 繰り返し
====[a:while] while
//emlist[例][ruby]{
ary = [0,2,4,8,16,32,64,128,256,512,1024]......rror_type が省略された時は StandardError のサブクラスであ
る全ての例外を捕捉します。Rubyの組み込み例外は(SystemExit や
Interrupt のような脱出を目的としたものを除いて)
StandardError のサブクラスです。
例外クラスのクラス階層... -
終了処理 (23052.0)
-
終了処理 Ruby はスクリプトの終端に達した場合や捕捉していない例外が発生した場 合に終了します(関数 Kernel.#exit や Kernel.#abort 、メインスレッドに対する Thread.kill などは SystemExit 例外を発生させます)。終了時には以下 の処理が順に実行されます。
...Kernel.#exit や Kernel.#abort
、メインスレッドに対する Thread.kill などは
SystemExit 例外を発生させます)。終了時には以下
の処理が順に実行されます。
(1) すべてのスレッドを Thread.kill する。
(1) Ruby の擬似シグナル SIGEXIT のハ......ンドラが登録されていればそれを実
行する(Kernel.#trap を参照)。
(1) d:spec/control#END ブロック(END { ... } または関数
Kernel.#at_exit で指定したブロック)が登録されていれば、
そのブロックを登録とは逆順に実行する......(1) exit(3) により終了する。このとき渡される終了ステータス値は終了方法によります。例えば、
* スクリプトの終端に達した場合は 0
* Kernel.#exit に渡した引数
* SystemExit による例外以外は 1
関数 Kernel.#exit! に... -
セキュリティモデル (23006.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
...らの Kernel.#load
* 汚染された文字列を引数にしての Kernel.#load (ラップされていても)
* Kernel.#syscall
* Kernel.#exit!
* Kernel.#trap
==== レベル 3
生成される全てのオブジェクトが汚染されます。
===== 汚染されるオブジェクト... -
Kernel
. # exit(status = true) -> () (18149.0) -
Rubyプログラムの実行を終了します。status として整 数が与えられた場合、その値を Ruby コマンドの終了ステータスとします。 デフォルトの終了ステータスは 0(正常終了)です。
...false の場合 1 を引数に指定したとみなされます。この値はCレベルの定数
EXIT_SUCCESS、EXIT_FAILURE の値なので、正確には環境依存です。
exit は例外 SystemExit を発生させ
ることによってプログラムの実行を終了させますので、
必........'
exit
rescue SystemExit => err
puts "end1 with #{err.inspect}"
end
begin
puts 'start2...'
exit
ensure
puts 'end2...'
end
puts 'end' #実行されない
#=> start
# start1...
# end1 with #<SystemExit: exit>
# start2...
# end2...
#終了ステータス:0
//}
@see Kernel.#exit!,......Kernel.#abort, d:spec/control#begin... -
Kernel
. # at _ exit { . . . } -> Proc (6173.0) -
与えられたブロックをインタプリタ終了時に実行します。
...ックをインタプリタ終了時に実行します。
at_exitがメソッドである点を除けば、END ブロックによる終了
処理の登録と同等です。登録した処理を取り消すことはできません。
spec/terminateも参照してください。
@return 登録した......Proc オブジェクトで返します。
//emlist[例][ruby]{
3.times do |i|
at_exit{puts "at_exit#{i}"}
end
END{puts "END"}
at_exit{puts "at_exit"}
puts "main_end"
#=> main_end
# at_exit
# END
# at_exit2
# at_exit1
# at_exit0
//}
@see d:spec/control#END,Kernel.#exit!,Kernel.#fork... -
Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (246.0)
-
Rubyで使われる記号の意味(正規表現の複雑な記号は除く) ex q num per and or plus minus ast slash hat sq period comma langl rangl eq tilde dollar at under lbrarbra lbra2rbra2 lbra3rbra3 dq colon ac backslash semicolon
...a2rbra2 lbra3rbra3 dq colon ac
backslash semicolon
===[a:ex] !
: !true
not 演算子。d:spec/operator#notを参照。
: 3 != 5
「等しくない」比較演算子。d:spec/operator#notを参照。
: def xxx!
「!」はメソッド名の一部です。慣用的に、
同名......。
===[a:q] ?
: ?a
d:spec/literal#string。長さ 1 の文字列。
: def xx?
この場合の「?」はメソッド名の一部分です。
慣用的に、真偽値を返すタイプのメソッドを示すために使われます。
: xx ? yy : zz
d:spec/operator#cond。三項演算......改行文字の直後の位置にマッチします。
===[a:colon] :
: :exit等の:のついた識別子
シンボルリテラル。d:spec/literal#symbol を参照。
: Net::HTTP
定数のスコープ演算子。d:spec/variables#const を参照。
: ::DateTime
定数のスコープ演算... -
Ruby用語集 (180.0)
-
Ruby用語集 A B C D E F G I J M N O R S Y
...a ya ra wa
=== 記号・数字
: %記法
: % notation
「%」記号で始まる多種多様なリテラル記法の総称。
参照:d:spec/literal#percent
: 0 オリジン
: zero-based
番号が 0 から始まること。
例えば、
Array や Vector、Matrix などの要素......である。そうでない場所では、メソッドを使って
間接的に参照・代入できる。
→アクセッサー
参照:d:spec/variables#instance
: インスタンスメソッド
: instance method
クラスやモジュールに定義されるメソッドは、定義方......証に限って使われることもある。
→ユニットテスト、ベンチマークテスト
===[a:ta] た
: 大域脱出
: non-local exit
Ruby においては、例外の発生もしくは Kernel.#throw によって
処理の実行が中断されること。
例外の場合は be... -
Signal
. # trap(signal) { . . . } -> String | Proc | nil (36.0) -
指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。
...ナル名を表す文字列か Symbol、またはシグナル番号を指定します。
さらに特別な値として 0 または "EXIT" が指定できます。
これは「プログラムの終了時」を表します。
@param command シグナルハンドラとし......"SIG_DFL" または "DEFAULT" を指定した時は、シグナルハンドラをデフォルトに戻します。
"EXIT"を指定した時は、シグナルを受け取ると終了処理を
行ったあとステータス 0 で終了します。......T, "EXIT") # => "DEFAULT"
Signal.trap(:INT, nil) # => "EXIT"
//emlist[例][ruby]{
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
# => Terminating: 13939
# => Child died
# => Terminating: 13907
//}
@see spec/te... -
Signal
. # trap(signal , command) -> String | Proc | nil (36.0) -
指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。
...ナル名を表す文字列か Symbol、またはシグナル番号を指定します。
さらに特別な値として 0 または "EXIT" が指定できます。
これは「プログラムの終了時」を表します。
@param command シグナルハンドラとし......"SIG_DFL" または "DEFAULT" を指定した時は、シグナルハンドラをデフォルトに戻します。
"EXIT"を指定した時は、シグナルを受け取ると終了処理を
行ったあとステータス 0 で終了します。......T, "EXIT") # => "DEFAULT"
Signal.trap(:INT, nil) # => "EXIT"
//emlist[例][ruby]{
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
# => Terminating: 13939
# => Child died
# => Terminating: 13907
//}
@see spec/te... -
ObjectSpace
. # define _ finalizer(obj) {|id| . . . } -> Array (12.0) -
obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。
...def initialize
ObjectSpace.define_finalizer(self, Bar.callback)
end
end
Bar.new
GC.start
//}
proc の呼び出しで発生した大域脱出(exitや例外)は無視されます。
これは、スクリプトのメイン処理が GC の発生によって非同期に中断され
るのを防ぐ......いでしょう。
//emlist[例][ruby]{
class Baz
def initialize
ObjectSpace.define_finalizer self, eval(%q{
proc {
raise "baz" rescue puts $!
raise "baz2"
puts "baz3"
}
}, TOPLEVEL_BINDING)
end
end
Baz.new
GC.start
# => baz
//}
@see spec/rubycmd...