るりまサーチ

最速Rubyリファレンスマニュアル検索!
2262件ヒット [101-200件を表示] (0.232秒)

別のキーワード

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

ライブラリ

モジュール

オブジェクト

キーワード

検索結果

<< < 1 2 3 4 ... > >>

Process::Status (8036.0)

プロセスの終了ステータスを表すクラスです。 メソッド Process.#wait2 などの返り値として使われます。

...exited normally. status=#{$?.exitstatus}"
else
p "unknown status %#x" % $?.to_i
end

SIGCHLD を trap する例

trap(:SIGCHLD) {|sig|

puts
"interrupted by signal #{sig} at #{caller[1]}"
# 複数の子プロセスの終了に対して1つの SIGCHLD しか届かない
# 場...
...signaled?
puts
" child #{$?.pid} was killed by signal #{$?.termsig}"
if $?.coredump?
puts
" child #{$?.pid} dumped core."
end
when $?.stopped?
puts
" child #{$?.pid} was stopped by signal #{$?.stopsig}"
when $?.exited?
puts
" chil...
...Process.kill :CONT, pid2
Process.kill :TERM, pid2
loop { sleep } # SIGCHLD を待つための sleep
rescue Errno::ECHILD
puts
"done"
end

=> 12964
12965
interrupted by signal 17 at -:27:in `sleep'
child 12965 was stopped by signal 19
interrupt...

Regexp#~ -> Integer | nil (8036.0)

変数 $_ の値との間でのマッチをとります。

..."hogehoge"

if /foo/
puts
"match"
else
puts
"no match"
end
# => no match
# ただし、警告がでる。warning: regex literal in condition

reg = Regexp.compile("foo")

if ~ reg
puts
"match"
else
puts
"no match"
end
# => no match

if reg
puts
"match"
else
puts
"no match"
end
# =>...

Enumerator#next -> object (8030.0)

「次」のオブジェクトを返します。

...s do
puts
enum.next
end
# => 120
# 121
# 122
//}

//emlist[例2][ruby]{
str = "xyz"
enum = str.each_byte

begin
puts
enum.next while true
rescue StopIteration
puts
"iteration reached at end"
end
# => 120
# 121
# 122
# iteration reached at end
puts
enu...
...m.next
#=> 再度 StopIteration 例外が発生
//}

//emlist[例3: Kernel.#loop は StopIteration を捕捉します。][ruby]{
str = "xyz"
enum = str.each_byte
loop do
puts
enum.next
end
# => 120
# 121
# 122
//}...

File#flock(operation) -> 0 | false (8030.0)

ファイルをロックします。

...File.open("/tmp/foo", "w")

f.flock(File::LOCK_EX)
puts
"locked by process1"

fork {
f = File.open("/tmp/foo", "r")
f.flock(File::LOCK_SH)
puts
"locked by process2"
sleep 5
puts
"unlocked by process2"
}

sleep 5

f.flock(File::LOCK_UN)
puts
"unlocked by process1"
sleep 1 # <- 子プロセ...
...スが確実に先にロックするための sleep
f.flock(File::LOCK_EX)
puts
"re-locked by process1"

# => locked by process1
# unlocked by process1
# locked by process2
# unlocked by process2
# re-locked by process1
//}...

String#gsub(pattern, replace) -> String (8030.0)

文字列中で pattern にマッチする部分全てを 文字列 replace で置き換えた文字列を生成して返します。

...ックスラッシュを倍にするときによくある間違い][ruby]{
puts
'\n'.gsub(/\\/, "\\\\") # => \n # NG
puts
'\n'.gsub(/\\/, '\\\\') # => \n # NG
puts
'\n'.gsub(/\\/, "\\\\\\\\") # => \\n # OK
puts
'\n'.gsub(/\\/, '\\\\\\\\') # => \\n # OK
//}

このような間違い...
...可読性を上げるには、
\& や \1 よりも下記のようにブロック付き形式の gsub を使うべきです。

//emlist[][ruby]{
p 'xbbb-xbbb'.gsub(/x(b+)/) { $1 } # => "bbb-bbb" # OK

puts
'\n'.gsub(/\\/) { '\\\\' } # => \\n # OK
//}

@see String#sub, String#gsub!...

絞り込み条件を変える

String#sub(pattern, replace) -> String (8030.0)

文字列中で pattern にマッチした最初の部分を 文字列 replace で置き換えた文字列を生成して返します。

...ックスラッシュを倍にするときによくある間違い][ruby]{
puts
'\n'.sub(/\\/, "\\\\") # => \n # NG
puts
'\n'.sub(/\\/, '\\\\') # => \n # NG
puts
'\n'.sub(/\\/, "\\\\\\\\") # => \\n # OK
puts
'\n'.sub(/\\/, '\\\\\\\\') # => \\n # OK
//}

このような間違いを...
...の可読性を上げるには、
\& や \1 よりも下記のようにブロック付き形式の sub を使うべきです。

//emlist[安全な例][ruby]{
p 'xbbb-xbbb'.sub(/x(b+)/) { $1 } # => "bbb-xbbb" # OK

puts
'\n'.sub(/\\/) { '\\\\' } # => \\n # OK
//}

@see String#gsub...

ThreadGroup#add(thread) -> self (8030.0)

スレッド thread が属するグループを自身に変更します。

...uby]{
puts
"Initial group is #{ThreadGroup::Default.list}"
# => Initial group is [#<Thread:0x4a49168 run>]

tg = ThreadGroup.new
t1 = Thread.new { sleep }
t2 = Thread.new { sleep }
puts
"t1 is #{t1}" # => t1 is #<Thread:0x50bef60>
puts
"t2 is #{t2}" # => t2 is #<Thread:0x50beed0>
tg.add(t1)
puts
"In...
...itial group now #{ThreadGroup::Default.list}"
# => Initial group now [#<Thread:0x3039168 run>, #<Thread:0x50beed0 run>]
puts
"tg group now #{tg.list}"
# => tg group now [#<Thread:0x50bef60 run>]
//}...

Encoding::Converter#insert_output(string) -> nil (8024.0)

変換器内のバッファに文字列を挿入します。 バッファに保持された文字列は、次の変換時の変換結果と一緒に返されます。

...}."
dst = ""
p ec.primitive_convert(src, dst) #=> :undefined_conversion
puts
"[#{dst.dump}, #{src.dump}]" #=> ["HIRAGANA LETTER A is ", "."]
ec.insert_output("<err>")
p ec.primitive_convert(src, dst) #=> :finished
puts
"[#{dst.dump}, #{src.dump}]" #=> ["HIRAGANA LETTER A is <err>.", ""]

e...
...st) #=> :undefined_conversion
puts
"[#{dst.dump}, #{src.dump}]" #=> ["\e$B$O$!$H".force_encoding("ISO-2022-JP"), "\xE3\ x80\x82"]
ec.insert_output "?" # state change required to output "?".
p ec.primitive_convert(src, dst) #=> :finished
puts
"[#{dst.dump}, #{src.dump}]"...

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

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

...turn 登録した処理を 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,Ke...

Kernel.#exit!(status = false) -> () (8024.0)

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

...与えます。

//emlist[例][ruby]{
STDOUT.sync = true #表示前に終了しないようにする
puts
'start'
begin
puts
'start1...'
exit!
ensure
puts
'end1...' #実行されない
end
puts
'end' #実行されない

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

@see Kernel.#exit,K...

絞り込み条件を変える

<< < 1 2 3 4 ... > >>