ライブラリ
- ビルトイン (88)
- csv (11)
- mkmf (11)
- rake (33)
- shell (12)
-
shell
/ command-processor (18) -
shell
/ filter (12) - timeout (19)
クラス
- Array (22)
- CSV (11)
- Object (11)
- Shell (12)
-
Shell
:: CommandProcessor (18) -
Shell
:: Filter (12)
キーワード
- CONFIG (11)
- Converters (11)
- Hash (11)
- Rubyの起動 (11)
-
SCRIPT
_ LINES _ _ (11) - [] (18)
-
rb
_ f _ hash (11) - ruby (11)
-
ruby 1
. 9 feature (11) - rule (11)
-
run
_ config (6) - shuffle! (22)
- spawn (44)
- test (18)
- timeout (19)
- 制御構造 (11)
- 環境変数 (11)
検索結果
先頭5件
-
制御構造 (42.0)
-
制御構造 条件分岐: * if * unless * case 繰り返し: * while * until * for * break * next * redo * retry 例外処理: * raise * begin その他: * return * BEGIN * END
...れ以外は 0 や空文
字列も含め全て真です。
Ruby では if を繋げるのは elsif であり、else if
(C のように)でも elif(sh のように)でもないことに注意してください。
また if の条件式が正規表現のリテラルである時には特別に
//eml......一引数で指定された例外を、第二引数をメッセージとして発生さ
せます。第四の形式の第三引数は
$@または
Kernel.#callerで得られる
スタック情報で、例外が発生した場所を示します。
発生した例外は後述の begin 式の rescue......! でも得られます。また例外が
発生したソースコード上の位置は変数 $@ に格納されます。
Kernel.#raise は Ruby の予約語ではなく、Kernel モジュールで
定義されている関数的メソッドです。
====[a:begin] begin
//emlist[例][ruby]{
begin... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (36.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...数値(0.000001のような)に変える。
timeout による割り込みは Kernel.#system によって呼び出された外部プログラムを
タイムアウトさせる事はできないので、IO.popen、Kernel.#openを使用するなどの工夫が必要です。
例 外部コマンド......のタイムアウト
require 'timeout'
# テスト用のシェルをつくる。
File.open("loop.sh", "w"){|fp|
fp.print <<SHELL_EOT
#!/bin/bash
S="scale=10"
M=32767
trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))" ; exit 0' INT
m1=0
m2=0
while true
do......let m2++
fi
done
SHELL_EOT
}
File.chmod(0755, "loop.sh")
t = 10 # 10 秒でタイムアウト
begin
pid = nil
com = nil
Timeout.timeout(t) {
# system だととまらない
# system("./loop.sh")
com = IO.popen("./loop.sh")
pid = com.pid... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (36.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...数値(0.000001のような)に変える。
timeout による割り込みは Kernel.#system によって呼び出された外部プログラムを
タイムアウトさせる事はできないので、IO.popen、Kernel.#openを使用するなどの工夫が必要です。
例 外部コマンド......のタイムアウト
require 'timeout'
# テスト用のシェルをつくる。
File.open("loop.sh", "w"){|fp|
fp.print <<SHELL_EOT
#!/bin/bash
S="scale=10"
M=32767
trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))" ; exit 0' INT
m1=0
m2=0
while true
do......let m2++
fi
done
SHELL_EOT
}
File.chmod(0755, "loop.sh")
t = 10 # 10 秒でタイムアウト
begin
pid = nil
com = nil
Timeout.timeout(t) {
# system だととまらない
# system("./loop.sh")
com = IO.popen("./loop.sh")
pid = com.pid... -
環境変数 (30.0)
-
環境変数 Rubyインタプリタは以下の環境変数を参照します。
...が発生します。
//emlist{
$ RUBYOPT=-y ruby -e ""
ruby: invalid switch in RUBYOPT: -y (RuntimeError)
//}
sh系
//emlist{
RUBYOPT='-Ke -rkconv'
export RUBYOPT
//}
csh系
//emlist{
setenv RUBYOPT '-Ke -rkconv'
//}
MS-DOS系
//emlist{
set RUBYOPT=-Ke -rkconv
//}......します)。
起動オプションの詳細に関してはspec/rubycmd を参照してください。
sh系
//emlist{
RUBYPATH=$HOME/ruby:/opt/ruby
export RUBYPATH
//}
csh系
//emlist{
setenv RUBYPATH $HOME/ruby:/opt/ruby
//}
MS-DOS系
//emlist{
set RUBYPATH=%H......//}
csh系
//emlist{
setenv RUBYLIB $HOME/ruby/lib:/opt/ruby/lib
//}
MS-DOS系
//emlist{
set RUBYLIB=%HOMEDRIVE%%HOMEPATH%\ruby\lib;\opt\ruby\lib
//}
: RUBYSHELL
この環境変数は platform/mswin32版、platform/mingw32版のrubyで
のみ有効です。
Kernel.#syste... -
FileUtils
# ruby(*args) {|result , status| . . . } (12.0) -
与えられた引数で Ruby インタプリタを実行します。
...与えられた引数で Ruby インタプリタを実行します。
@param args Ruby インタプリタに与える引数を指定します。
例:
ruby %{-pe '$_.upcase!' <README}
@see Kernel.#sh... -
ruby 1
. 9 feature (12.0) -
ruby 1.9 feature ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。
...* [api]: 拡張ライブラリ API
* [lib]: ライブラリ
* [parser]: 文法の変更
* [regexp]: 正規表現の機能拡張
* [marshal]: Marshal ファイルのフォーマット変更
* レベル
* [bug]: バグ修正
* [new]: 追加されたクラス/メソッドなど
* [com......le
=== 2006-09-13
: Hash#compare_by_identity
: Hash#compare_by_identity?
: Hash#identical
: Hash#identical?
=== 2006-09-12
: Hash#compare_by_identity
: Hash#compare_by_identity?
=== 2006-09-11
: Hash#identical
: Hash#identical?
=== 2006-08-31
: Array#shuffle
: Array#shuffle!
追加
=== 2......#=> ruby 1.9.0 (2004-04-25) [i386-mswin32]
["{"]
=== 2004-04-08
: Iconv.list [lib] [compat]
((<ruby-dev:23063>))
=== 2004-04-06
: Kernel#open [ruby] [change]
可能なら最初の引数に対して to_open を呼ぶようになりました。
: Exception#to_str [ruby] [obsolete]...