ライブラリ
クラス
- CSV (22)
-
CSV
:: FieldInfo (11) -
RDoc
:: Markdown (11) -
Rake
:: FileList (11) -
RubyVM
:: InstructionSequence (22)
キーワード
-
$ DEFAULT _ INPUT (11) -
$ INPUT _ RECORD _ SEPARATOR (11) -
$ LAST _ PAREN _ MATCH (11) -
$ RS (11) - ARGF (11)
- Monitor (11)
- MonitorMixin (11)
- NKF (11)
- SizedQueue (11)
- bigdecimal (11)
-
break
_ on _ newline= (11) - caller (33)
- compile (11)
- convert (22)
- egrep (11)
- file (11)
- loop (11)
- new (11)
- timeout (19)
検索結果
先頭5件
-
CSV
:: FieldInfo # line=(val) (30300.0) -
行番号をセットします。
行番号をセットします。
@param val 行番号を指定します。 -
RDoc
:: Markdown # break _ on _ newline=(val) (18300.0) -
改行を保持した状態で出力するかどうかを設定します。
改行を保持した状態で出力するかどうかを設定します。 -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (18222.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはいります。
また sec が 0 もしくは nil のときは制限時間なし......exception_class タイムアウトした時、発生させる例外を指定します.
@param message エラーメッセージを指定します.省略した場合は
"execution expired" になります.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)......+ 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])
#例
#=> 417519: pi = 3.141443
例... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (18222.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはいります。
また sec が 0 もしくは nil のときは制限時間なし......exception_class タイムアウトした時、発生させる例外を指定します.
@param message エラーメッセージを指定します.省略した場合は
"execution expired" になります.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)......+ 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])
#例
#=> 417519: pi = 3.141443
例... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (18220.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはいります。
また sec が 0 もしくは nil のときは制限時間なし......am exception_class タイムアウトした時、発生させる例外を指定します.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t = 5
min = [ 0,......in
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])
#例
#=> 417519: pi = 3.141443
例 独自の例外を発生させるタイムアウト
#!/usr/bin/env ruby
require 'ti... -
RubyVM
:: InstructionSequence . compile(source , file = nil , path = nil , line = 1 , options = nil) -> RubyVM :: InstructionSequence (13002.0) -
引数 source で指定した Ruby のソースコードを元にコンパイル済みの RubyVM::InstructionSequence オブジェクトを作成して返します。
...にコンパイル済みの
RubyVM::InstructionSequence オブジェクトを作成して返します。
@param source Ruby のソースコードを文字列で指定します。
@param file ファイル名を文字列で指定します。
@param path 引数 file の絶対パスファイル名を......。
@param line 引数 source の 1 行目の行番号を指定します。
@param options コンパイル時のオプションを true、false、Hash オブ
ジェクトのいずれかで指定します。詳細は
RubyVM::InstructionSequence.compile_option= を参......照
してください。
RubyVM::InstructionSequence.compile("a = 1 + 2")
# => <RubyVM::InstructionSequence:<compiled>@<compiled>>
@see RubyVM::InstructionSequence.compile_file... -
Kernel
# file(*args) { . . . } -> Rake :: FileTask (12406.0) -
ファイルタスクを定義します。
...ル名を指定します。
例:
file "config.cfg" => ["config.template"] do
open("config.cfg", "w") do |outfile|
open("config.template") do |infile|
while line = infile.gets
outfile.puts line
end
end
end
end
@see Rake::Task.define_task... -
Kernel
$ $ INPUT _ RECORD _ SEPARATOR -> String | nil (12406.0) -
$/ の別名
...$/ の別名
require "English"
$INPUT_RECORD_SEPARATOR = '|'
array = []
while line = DATA.gets
array << line
end
p array #=> ["ugo|", "ego|", "fogo\n"]
__END__
ugo|ego|fogo... -
Kernel
$ $ DEFAULT _ INPUT -> IO (12206.0) -
$< の別名
...$< の別名
require "English"
while line = $DEFAULT_INPUT.gets
p line
end
# end of sample.rb
ruby sample.rb < /etc/passwd
# => "hoge:x:500:501::/home/hoge:/bin/bash\n"
...... -
bigdecimal (12048.0)
-
bigdecimal は浮動小数点数演算ライブラリです。 任意の精度で 10 進表現された浮動小数点数を扱えます。
...bigdecimal は浮動小数点数演算ライブラリです。
任意の精度で 10 進表現された浮動小数点数を扱えます。
//emlist[][ruby]{
require 'bigdecimal'
a = BigDecimal("0.123456789123456789")
b = BigDecimal("123456.78912345678", 40)
print a + b # => 0.123456912580245903456......BigDecimal では正確な値を得る事ができます。
//emlist[例1: 0.0001 を 10000 回足す場合。][ruby]{
sum = 0
for i in (1..10000)
sum = sum + 0.0001
end
print sum # => 0.9999999999999062
//}
//emlist[例2: 0.0001 を 10000 回足す場合。(BigDecimal)][ruby]{
require 'bigdecim......al'
sum = BigDecimal("0")
for i in (1..10000)
sum = sum + BigDecimal("0.0001")
end
print sum # => 0.1e1
//}
//emlist[例3: 1.2 - 1.0 と 0.2 との比較][ruby]{
require "bigdecimal"
(BigDecimal("1.2") - BigDecimal("1.0")) == BigDecimal("0.2") # => true
(1.2 - 1.0) == 0.2 # => false
//}
===... -
Monitor (12006.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...onitorMixin を include し、いくつかの別名を定義したクラスです。
=== 例
//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'
buf = []
mon = Monitor.new
empty_cond = mon.new_cond
# consumer
Thread.start do
loop do
mon.synchronize do
empty_cond.wait......hile { buf.empty? }
print buf.shift
end
end
end
# producer
while line = ARGF.gets
mon.synchronize do
buf.push(line)
empty_cond.signal
end
end
//}
2回ロックしてもデッドロックにならない例です。
//emlist[デッドロックにならない例][ruby]{
requi......re 'monitor'
mon = Monitor.new
mon.synchronize {
mon.synchronize {
}
}
//}
Thread::Mutex ではデッドロックになります。
//emlist[Mutex でデッドロックになる例][ruby]{
mx = Mutex.new
mx.synchronize {
mx.synchronize {
}
}
# => deadlock; recursive locking (ThreadError)
/...