るりまサーチ

最速Rubyリファレンスマニュアル検索!
729件ヒット [1-100件を表示] (0.262秒)

別のキーワード

  1. _builtin new
  2. _builtin inspect
  3. _builtin []
  4. _builtin to_s
  5. _builtin each

ライブラリ

モジュール

キーワード

検索結果

<< 1 2 3 ... > >>

Kernel.#at_exit { ... } -> Proc (8049.0)

与えられたブロックをインタプリタ終了時に実行します。

...与えられたブロックをインタプリタ終了時に実行します。

at_exitがメソッドである点を除けば、END ブロックによる終了
処理の登録と同等です。登録した処理を取り消すことはできません。
spec/terminateも参照してください。...
...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...

Kernel.#abort -> () (8043.0)

Ruby プログラムをエラーメッセージ付きで終了します。終了ステータスは 1 固定です。

...stemExit => err
puts "end1 with #{err.inspect}"
end


begin
puts 'start2...'
raise RuntimeError.new
rescue
abort
ensure
puts 'end2...'
end

puts 'end' #実行されない

#(標準出力)
#=> start
# start1...
# end1 with #<SystemExit: error1>
# start2...
# end2...
#終了ステー...

Kernel.#abort(message) -> () (8043.0)

Ruby プログラムをエラーメッセージ付きで終了します。終了ステータスは 1 固定です。

...stemExit => err
puts "end1 with #{err.inspect}"
end


begin
puts 'start2...'
raise RuntimeError.new
rescue
abort
ensure
puts 'end2...'
end

puts 'end' #実行されない

#(標準出力)
#=> start
# start1...
# end1 with #<SystemExit: error1>
# start2...
# end2...
#終了ステー...

Kernel.#caller(range) -> [String] | nil (8043.0)

start 段上の呼び出し元の情報を $@ の形式のバックトレース(文字列の配列)として返します。

...l.#raise,
Kernel.#caller_locations

//emlist[例][ruby]{
def foo
p caller(0)
p caller(1)
p caller(2)
p caller(3)
p caller(4)
end


def bar
foo
end


bar

#=> ["-:2:in `foo'", "-:10:in `bar'", "-:13:in `<main>'"]
# ["-:10:in `bar'", "-:13:in `<main>'"]
# ["-:13:in `<main>'"]
# []...
...+)(?::in `(.*)')?/ =~ at
file = $1
line = $2.to_i
method = $3
[file, line, method]
end

end


def foo
p parse_caller(caller.first)
end


def bar
foo
p parse_caller(caller.first)
end


bar
p parse_caller(caller.first)

#=> ["-", 15, "bar"]
# ["-", 19, nil]
# nil
//}

以下は...
...、$DEBUG が真の場合に役に立つ debug 関数
のサンプルです。

//emlist[例][ruby]{
$DEBUG = true

def debug(*args)
p [caller.first, *args] if $DEBUG
end


debug "debug information"

#=> ["-:7", "debug information"]
//}...

Kernel.#caller(start = 1) -> [String] | nil (8043.0)

start 段上の呼び出し元の情報を $@ の形式のバックトレース(文字列の配列)として返します。

...l.#raise,
Kernel.#caller_locations

//emlist[例][ruby]{
def foo
p caller(0)
p caller(1)
p caller(2)
p caller(3)
p caller(4)
end


def bar
foo
end


bar

#=> ["-:2:in `foo'", "-:10:in `bar'", "-:13:in `<main>'"]
# ["-:10:in `bar'", "-:13:in `<main>'"]
# ["-:13:in `<main>'"]
# []...
...+)(?::in `(.*)')?/ =~ at
file = $1
line = $2.to_i
method = $3
[file, line, method]
end

end


def foo
p parse_caller(caller.first)
end


def bar
foo
p parse_caller(caller.first)
end


bar
p parse_caller(caller.first)

#=> ["-", 15, "bar"]
# ["-", 19, nil]
# nil
//}

以下は...
...、$DEBUG が真の場合に役に立つ debug 関数
のサンプルです。

//emlist[例][ruby]{
$DEBUG = true

def debug(*args)
p [caller.first, *args] if $DEBUG
end


debug "debug information"

#=> ["-:7", "debug information"]
//}...

絞り込み条件を変える

Kernel.#caller(start, length) -> [String] | nil (8043.0)

start 段上の呼び出し元の情報を $@ の形式のバックトレース(文字列の配列)として返します。

...l.#raise,
Kernel.#caller_locations

//emlist[例][ruby]{
def foo
p caller(0)
p caller(1)
p caller(2)
p caller(3)
p caller(4)
end


def bar
foo
end


bar

#=> ["-:2:in `foo'", "-:10:in `bar'", "-:13:in `<main>'"]
# ["-:10:in `bar'", "-:13:in `<main>'"]
# ["-:13:in `<main>'"]
# []...
...+)(?::in `(.*)')?/ =~ at
file = $1
line = $2.to_i
method = $3
[file, line, method]
end

end


def foo
p parse_caller(caller.first)
end


def bar
foo
p parse_caller(caller.first)
end


bar
p parse_caller(caller.first)

#=> ["-", 15, "bar"]
# ["-", 19, nil]
# nil
//}

以下は...
...、$DEBUG が真の場合に役に立つ debug 関数
のサンプルです。

//emlist[例][ruby]{
$DEBUG = true

def debug(*args)
p [caller.first, *args] if $DEBUG
end


debug "debug information"

#=> ["-:7", "debug information"]
//}...

Kernel.#exit(status = true) -> () (8043.0)

Rubyプログラムの実行を終了します。status として整 数が与えられた場合、その値を Ruby コマンドの終了ステータスとします。 デフォルトの終了ステータスは 0(正常終了)です。

...art1...'
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.#e...

ObjectSpace.#define_finalizer(obj) {|id| ...} -> Array (8043.0)

obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。

...方の悪い例です。

//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace.define_finalizer(self) {
puts "foo"
}
end

end

Foo.new
GC.start
//}

これは、渡された proc の self が obj を参照しつ
づけるため。そのオブジェクトが GC の対象に...
...避しています。

//emlist[例][ruby]{
class Bar
def Bar.callback
proc {
puts "bar"
}
end

def initialize
ObjectSpace.define_finalizer(self, Bar.callback)
end

end

Bar.new
GC.start
//}

proc の呼び出しで発生した大域脱出(exitや例外)は無視されます...
...いでしょう。

//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...

ObjectSpace.#define_finalizer(obj, proc) -> Array (8043.0)

obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。

...方の悪い例です。

//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace.define_finalizer(self) {
puts "foo"
}
end

end

Foo.new
GC.start
//}

これは、渡された proc の self が obj を参照しつ
づけるため。そのオブジェクトが GC の対象に...
...避しています。

//emlist[例][ruby]{
class Bar
def Bar.callback
proc {
puts "bar"
}
end

def initialize
ObjectSpace.define_finalizer(self, Bar.callback)
end

end

Bar.new
GC.start
//}

proc の呼び出しで発生した大域脱出(exitや例外)は無視されます...
...いでしょう。

//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...
<< 1 2 3 ... > >>