るりまサーチ

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

別のキーワード

  1. _builtin end
  2. ripper end_seen?
  3. _builtin exclude_end?
  4. _builtin end_with?
  5. range end

ライブラリ

モジュール

キーワード

検索結果

<< 1 2 > >>

Kernel.#exit(status = true) -> () (18186.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.#at_exit { ... } -> Proc (6210.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.#exit!(status = false) -> () (6162.0)

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

...0、 false の場合 1 を引数に指定したとみなされます。この値はCレベルの定数
EXIT
_SUCCESS、EXIT_FAILURE の値なので、正確には環境依存です。

exit
! は exit とは違って、例外処理などは一切行ないませ
ん。 Kernel.#fork の後、子プロ...
...T.sync = true #表示前に終了しないようにする
puts 'start'
begin
puts 'start1...'
exit
!
ensure
puts 'end1...' #実行されない
end

puts 'end' #実行されない

#=> start
# start1...
#終了ステータス:1
//}

@see Kernel.#exit,Kernel.#abort,Kernel.#at_exit,Kernel.#fork...

Kernel.#abort -> () (67.0)

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

...Kernel.#exit との違いは、プログラムの終了ステー
タスが 1 (正確にはCレベルの定数 EXIT_FAILURE の値)固定であることと、
エラーメッセージを標準エラー出力 $stderr に出力することです。

引数 message を指定すると SystemExit クラ...
...rescue SystemExit => 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...
#終了...
...ステータス:1
#(標準エラー出力)
#=> error1
//}

@see Kernel.#exit,Kernel.#exit!...
...ステータス:1
#(標準エラー出力)
#=> error1
# Traceback (most recent call last):
# sample.rb:11:in `<main>': RuntimeError (RuntimeError)
//}

@see Kernel.#exit,Kernel.#exit!...

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

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

...Kernel.#exit との違いは、プログラムの終了ステー
タスが 1 (正確にはCレベルの定数 EXIT_FAILURE の値)固定であることと、
エラーメッセージを標準エラー出力 $stderr に出力することです。

引数 message を指定すると SystemExit クラ...
...rescue SystemExit => 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...
#終了...
...ステータス:1
#(標準エラー出力)
#=> error1
//}

@see Kernel.#exit,Kernel.#exit!...
...ステータス:1
#(標準エラー出力)
#=> error1
# Traceback (most recent call last):
# sample.rb:11:in `<main>': RuntimeError (RuntimeError)
//}

@see Kernel.#exit,Kernel.#exit!...

絞り込み条件を変える

Readline.#readline(prompt = "", add_hist = false) -> String | nil (55.0)

prompt を出力し、ユーザからのキー入力を待ちます。 エンターキーの押下などでユーザが文字列を入力し終えると、 入力した文字列を返します。 このとき、add_hist が true であれば、入力した文字列を入力履歴に追加します。 何も入力していない状態で EOF(UNIX では ^D) を入力するなどで、 ユーザからの入力がない場合は nil を返します。

...buf
end

rescue Interrupt
system("stty", stty_save)
exit

end


例: INTシグナルを捕捉して、端末状態を復帰する。

require 'readline'

stty_save = `stty -g`.chomp
trap("INT") { system "stty", stty_save; exit }

while buf = Readline.readline
p buf
end
...
...た、単に ^C を無視する方法もあります。

require 'readline'

trap("INT", "SIG_IGN")

while buf = Readline.readline
p buf
end


入力履歴 Readline::HISTORY を使用して、次のようなこともできます。

例: 空行や直前の入力と同じ内容は入力履...
...f

begin
if Readline::HISTORY[Readline::HISTORY.length-2] == buf
Readline::HISTORY.pop
end

rescue IndexError
end


# p Readline::HISTORY.to_a
print "-> ", buf, "\n"
end


@see Readline.vi_editing_mode、Readline.emacs_editing_mode、
Readline::HISTORY...

Timeout.#timeout(sec, exception_class = nil) {|i| ... } -> object (55.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

...x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end

end


t = 5
min = [ 0, 0]
begin
Timeout.timeout(t){
calc_pi(min)
}
rescue Timeout::Error
puts "timeout"
end


printf "%d: pi = %f\n", min[0] + min[1], min[0]*4.0/(min[0]+min[1])
#...
...ムアウト
#!/usr/bin/env ruby

require 'timeout'

class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30)
}
rescue MYError => err
puts "MYError"
puts err
end


=== 注意

timeout による割り込みは Thread によって実現されてい...
...= Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)
}
ensure
p Time.now - start
end

# 実行例
=> ["helium.ruby-lang.org", [], 2, "210.251.121.214"]
0.689331
/usr/local/lib/ruby/1.6/timeout.rb:37: execution expired...

Timeout.#timeout(sec, exception_class, message) {|i| ... } -> object (55.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

...x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end

end


t = 5
min = [ 0, 0]
begin
Timeout.timeout(t){
calc_pi(min)
}
rescue Timeout::Error
puts "timeout"
end


printf "%d: pi = %f\n", min[0] + min[1], min[0]*4.0/(min[0]+min[1])
#...
...ムアウト
#!/usr/bin/env ruby

require 'timeout'

class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30)
}
rescue MYError => err
puts "MYError"
puts err
end


=== 注意

timeout による割り込みは Thread によって実現されてい...
...= Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)
}
ensure
p Time.now - start
end

# 実行例
=> ["helium.ruby-lang.org", [], 2, "210.251.121.214"]
0.689331
/usr/local/lib/ruby/1.6/timeout.rb:37: execution expired...

ObjectSpace.#define_finalizer(obj) {|id| ...} -> Array (49.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 の対象に...
...[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 > >>