別のキーワード
ライブラリ
クラス
- CGI (12)
- CSV (60)
- GDBM (12)
- Logger (12)
-
OpenSSL
:: BN (24) - OptionParser (144)
- SDBM (12)
- String (12)
- StringScanner (12)
-
Thread
:: Queue (36) -
Thread
:: SizedQueue (36)
オブジェクト
-
Readline
:: HISTORY (36)
キーワード
- ConditionVariable (12)
- Monitor (12)
- MonitorMixin (12)
- NKF (12)
- Ruby用語集 (12)
- TCPServer (12)
- TCPSocket (12)
-
delete
_ at (12) - deq (24)
- gets (12)
- iseuc (12)
- lshift! (12)
-
matched
_ size (12) - new (24)
- on (144)
- optparse (12)
- pop (36)
- pretty (12)
- readline (12)
-
return
_ headers? (12) -
rinda
/ rinda (12) - rshift! (12)
-
ruby 1
. 6 feature (12)
検索結果
先頭5件
-
TCPServer (24.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 ns......s
s.write(str)
end
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... -
Readline
:: HISTORY . delete _ at(index) -> String | nil (22.0) -
index で指定したインデックスの内容をヒストリから削除し、その内容を返します。 該当する index の内容がヒストリになければ、 nil を返します。 index に 0 を指定すると Readline::HISTORY.shift と同様に最初の入力内容を削除します。 また、 -1 は最後の入力内容というように、index に負の値を指定することで、 最後から入力内容を取得することもできます。 index が -1 の場合は Readline::HISTORY.pop と同様に動作します。
...します。
該当する index の内容がヒストリになければ、 nil を返します。
index に 0 を指定すると Readline::HISTORY.shift
と同様に最初の入力内容を削除します。
また、 -1 は最後の入力内容というように、index に負の値を指定する......のヒストリのインデックスを指定します。
@raise NotImplementedError サポートしていない環境で発生します。
例:
require "readline"
Readline::HISTORY.push("foo", "bar", "baz")
Readline::HISTORY.delete_at(1)
p Readline::HISTORY.to_a #=> ["foo", "baz"]... -
OptionParser
# on(long , desc = "") {|v| . . . } -> self (19.0) -
オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。
...ングオプションを同時に登録することもできます。
opts.on("-r", "--require LIBRARY"){|lib| ...}
これは以下と同値です。
opts.on("-r LIBRARY"){|lib| ...}
opts.on("--require LIBRARY"){|lib| ...}
複数の異なるオプションに同じブロックを一度に登... -
OptionParser
# on(short , desc = "") {|v| . . . } -> self (19.0) -
オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。
...ングオプションを同時に登録することもできます。
opts.on("-r", "--require LIBRARY"){|lib| ...}
これは以下と同値です。
opts.on("-r LIBRARY"){|lib| ...}
opts.on("--require LIBRARY"){|lib| ...}
複数の異なるオプションに同じブロックを一度に登... -
OptionParser
# on(short , long , desc = "") {|v| . . . } -> self (19.0) -
オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。
...ングオプションを同時に登録することもできます。
opts.on("-r", "--require LIBRARY"){|lib| ...}
これは以下と同値です。
opts.on("-r LIBRARY"){|lib| ...}
opts.on("--require LIBRARY"){|lib| ...}
複数の異なるオプションに同じブロックを一度に登... -
CSV
# return _ headers? -> bool (18.0) -
ヘッダを返す場合は、真を返します。 そうでない場合は、偽を返します。
...す。
そうでない場合は、偽を返します。
//emlist[例][ruby]{
require "csv"
csv = CSV.new("header1,header2\nrow1_1,row1_2", headers: true, return_headers: false)
csv.return_headers? # => false
csv.shift # => #<CSV::Row "header1":"row1_1" "header2":"row1_2">
csv = CSV.new("header1,h......eader2\nrow1_1,row1_2", headers: true, return_headers: true)
csv.return_headers? # => true
csv.shift # => #<CSV::Row "header1":"header1" "header2":"header2">
//}
@see CSV.new... -
CSV
. new(data , options = Hash . new) -> CSV (18.0) -
このメソッドは CSV ファイルを読み込んだり、書き出したりするために String か IO のインスタンスをラップします。
...扱います。このとき、:col_sep, :row_sep, :quote_char
はこのインスタンスと同じものを使用します。この設定は CSV#shift
の返り値を配列のかわりに CSV::Row のインスタンスに変更します。
CSV#read の返り値を配列の配列のかわりに......CSV::MalformedCSVError 不正な CSV をパースしようとしたときに発生します。
//emlist[例: ファイルの読み込み][ruby]{
require "csv"
users =<<-EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
EOS
File.write("test.csv", use......V
csv.first # => #<CSV::Row "id":"1" "first name":"taro" "last name":"tanaka" "age":"20">
end
//}
//emlist[例 文字列の読み込み][ruby]{
require "csv"
users =<<-EOS
id|first name|last name|age
1|taro|tanaka|20
2|jiro|suzuki|18
3|ami|sato|19
4|yumi|adachi|21
EOS
csv = CSV.new(users, heade... -
Monitor (18.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...//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_while { buf.empty? }
print buf.shift
end
end
end
# producer
while line = ARGF.ge......d.signal
end
end
//}
2回ロックしてもデッドロックにならない例です。
//emlist[デッドロックにならない例][ruby]{
require 'monitor'
mon = Monitor.new
mon.synchronize {
mon.synchronize {
}
}
//}
Thread::Mutex ではデッドロックになります。
//emlist[M... -
StringScanner
# matched _ size -> Integer | nil (18.0) -
前回マッチした部分文字列の長さを返します。 前回マッチに失敗していたら nil を返します。
...y]{
require 'strscan'
def run(encode)
utf8 = "\u{308B 3073 3044}" # るびい
s = StringScanner.new(utf8.encode(encode))
s.scan(/#{"\u{308B}".encode(encode)}/)
s.matched_size
end
p run("UTF-8") #=> 3
p run("EUC-JP") #=> 2
p run("Shift_Jis") #=> 2
//}
//emlist[例][ruby]{
require '...