ライブラリ
クラス
-
ARGF
. class (12) - Array (21)
- Bignum (6)
-
File
:: Stat (48) - Fixnum (6)
- Float (22)
- IO (12)
- Integer (24)
-
Net
:: SMTP (24) - Regexp (12)
- Ripper (24)
- String (24)
- StringIO (12)
- Struct (48)
- ThreadsWait (24)
- TracePoint (12)
-
Zlib
:: Deflate (12) -
Zlib
:: GzipReader (84) -
Zlib
:: GzipWriter (12)
モジュール
- Kernel (72)
-
OpenSSL
:: Buffering (12) -
Profiler
_ _ (6) - TSort (46)
- Timeout (21)
キーワード
-
$ CHILD _ STATUS (12) - % (12)
- << (18)
- =~ (12)
- >> (18)
- Float (12)
- Forwardable (12)
- NKF (12)
- TCPServer (12)
- [] (12)
-
all
_ waits (18) -
each
_ byte (24) -
each
_ strongly _ connected _ component _ from (23) - find (12)
- format (12)
- grpowned? (12)
- irb (12)
- lineno (12)
- lineno= (12)
- mode (12)
- new (54)
-
next
_ float (11) - owned? (12)
- pack (21)
- pack テンプレート文字列 (12)
- pos (12)
-
prev
_ float (11) -
print
_ profile (6) -
rb
_ ary _ entry (12) -
rb
_ ary _ to _ s (12) -
rb
_ fatal (12) -
rb
_ raise (12) - ready (12)
-
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 4 feature (12) -
set
_ dictionary (12) - socket? (12)
- sprintf (12)
- sprintf フォーマット (12)
- tell (12)
- timeout (21)
-
tsort
_ each (23) - ungetc (12)
- unpack (12)
- warn (12)
- warning (12)
- リテラル (12)
検索結果
先頭5件
-
TCPServer (12.0)
-
TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。
...echo サーバは以下のようになります。
require "socket"
gs = TCPServer.open(0)
socks = [gs]
addr = gs.addr
addr.shift
printf("server is on %s\n", addr.join(":"))
while true
nsock = select(socks)
next if nsock == nil
for s in nsock[0]
if s == gs......end
end
end
Thread を使えばもっと短くなります。
require "socket"
gs = TCPServer.open(0)
addr = gs.addr
addr.shift
printf("server is on %s\n", addr.join(":"))
while true
Thread.start(gs.accept) do |s| # save to dynamic variable
print(s, " is acc... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (12.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...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
例 独自の例外を発生させるタイム......id
while line = com.gets
print line
end
}
rescue Timeout::Error => err
puts "timeout: shell execution."
Process.kill('SIGINT', pid)
printf "[result]\t%s", com.read
com.close unless com.nil?
end
#止まっているか確認する。
#system("ps au")... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (12.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...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
例 独自の例外を発生させるタイム......id
while line = com.gets
print line
end
}
rescue Timeout::Error => err
puts "timeout: shell execution."
Process.kill('SIGINT', pid)
printf "[result]\t%s", com.read
com.close unless com.nil?
end
#止まっているか確認する。
#system("ps au")... -
irb (12.0)
-
irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
..._MODE] = :MY_PROMPT
PROMPT_I, PROMPT_S, PROMPT_C にはフォーマット文字列を指定します。
フォーマット文字列では Kernel.#printf のように
「%」を用いた記法が使えます。
フォーマット文字列で使用可能な記法は以下の通りです。
: %N......号を、NN 桁に右詰めした文字列。
NN は省略可能。
: %%
文字「%」それ自体
また、RETURN は現在のところ printf と全く同じ形式で指定します。
ただし、将来は仕様が変わる可能性があります。
例えば、デフォルトのプロ... -
Array
# pack(template) -> String (6.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...Ruby"
[82, 117, 98, 121].pack("c*") # => "Ruby"
s = ""
[82, 117, 98, 121].each {|c| s << c}
s # => "Ruby"
[82, 117, 98, 121].collect {|c| sprintf "%c", c}.join # => "Ruby"
[82, 117, 98, 121].inject("") {|s, c| s << c} # => "Ruby"
//}
: 文字列を数値(文字コード)の配列に......すアドレ
ス(のバイナリ表現)です。以下のようにすれば見慣れた表記で見ること
が出来ます
//emlist[][ruby]{
printf "%#014x\n", "xp\xC2\x85\vV\x00\x00".unpack("J")[0] # => 0x560b85c27078
//}
アドレスが指す先のオブジェクト(この例で "foo\0")... -
Array
# pack(template , buffer: String . new) -> String (6.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...Ruby"
[82, 117, 98, 121].pack("c*") # => "Ruby"
s = ""
[82, 117, 98, 121].each {|c| s << c}
s # => "Ruby"
[82, 117, 98, 121].collect {|c| sprintf "%c", c}.join # => "Ruby"
[82, 117, 98, 121].inject("") {|s, c| s << c} # => "Ruby"
//}
: 文字列を数値(文字コード)の配列に......すアドレ
ス(のバイナリ表現)です。以下のようにすれば見慣れた表記で見ること
が出来ます
//emlist[][ruby]{
printf "%#014x\n", "xp\xC2\x85\vV\x00\x00".unpack("J")[0] # => 0x560b85c27078
//}
アドレスが指す先のオブジェクト(この例で "foo\0")... -
Bignum
# <<(bits) -> Fixnum | Bignum (6.0) -
シフト演算子。bits だけビットを左にシフトします。
...シフト演算子。bits だけビットを左にシフトします。
@param bits シフトさせるビット数
printf("%#b\n", 0b0101 << 1) #=> 0b1010
p -1 << 1 #=> -2... -
Bignum
# >>(bits) -> Fixnum | Bignum (6.0) -
シフト演算子。bits だけビットを右にシフトします。
...フトします。
右シフトは、符号ビット(最上位ビット(MSB))が保持されます。
bitsが実数の場合、小数点以下を切り捨てた値でシフトします。
@param bits シフトさせるビット数
printf("%#b\n", 0b0101 >> 1) #=> 0b10
p -1 >> 1 #=> -1... -
File
:: Stat # mode -> Integer (6.0) -
ファイルモードを返します。
...ファイルモードを返します。
//emlist[][ruby]{
fs = File::Stat.new($0)
printf "%o\n", fs.mode
#例
#=> 100644
//}... -
File
:: Stat # owned? -> bool (6.0) -
自分のものである時に真を返します。
...自分のものである時に真を返します。
//emlist[][ruby]{
printf "%s %s\n", $:[0], File::Stat.new($:[0]).owned?
#例
#=> /usr/local/lib/site_ruby/1.8 false
//}... -
File
:: Stat # socket? -> bool (6.0) -
ソケットの時に真を返します。
...ソケットの時に真を返します。
//emlist[][ruby]{
Dir.glob("/tmp/*"){|file|
if File::Stat.new(file).socket?
printf "%s\n", file
end
}
#例
#=> /tmp/uimhelper-hogehoge
#...
//}...