クラス
- IO (12)
モジュール
-
OpenSSL
:: Buffering (36) - Readline (24)
キーワード
- Monitor (12)
- MonitorMixin (12)
- Readline (12)
-
completion
_ proc= (12) - pp (12)
- printf (12)
- readline (12)
- sync= (12)
- sysseek (12)
検索結果
先頭5件
-
OpenSSL
:: Buffering # print(*args) -> nil (21107.0) -
args を順に出力します。
...args を順に出力します。
args の各要素を to_s で文字列に変換して
出力します。
IO#print とほぼ同様ですが、引数を省略した場合に $_ を出力する
機能はありません。
@param args 出力するオブジェクト... -
OpenSSL
:: Buffering # printf(format , *args) -> nil (9100.0) -
format に従い引数 args を文字列に変換して 出力します。
...format に従い引数 args を文字列に変換して
出力します。
IO#printf と同様です。
@param format 出力フォーマット文字列
@param arg 出力するオブジェクト
@see Kernel.#printf... -
OpenSSL
:: Buffering # sync=(sync) (3006.0) -
出力の同期モードを設定します。
...定します。
true に設定すると同期モードになり、
OpenSSL::Buffering#write_nonblock と
OpenSSL::SSL::SSLSocket#syswrite を除くすべての書き込み
(OpenSSL::Buffering#write, OpenSSL::Buffering#print など)
はバッファリングされずに出力されます。
false......に設定すると書き込みはバッファリングされます。
@param sync 設定するモード(真偽値)
@see OpenSSL::Buffering#sync... -
pp (96.0)
-
オブジェクトなどを見やすく出力するためのライブラリです。
...か?
p による pretty-print されてない出力:
#<PP:0x81a0d10 @stack=[], @genspace=#<Proc:0x81a0cc0>, @nest=[0], @newline="\n",
@buf=#<PrettyPrint::Group:0x81a0c98 @group=0, @tail=0, @buf=[#<PrettyPrint::Gro
up:0x81a0ba8 @group=1, @tail=0, @buf=[#<PrettyPrint::Text:0x81a0b30 @tail=2, @......wi
dth=1, @text="[">, #<PrettyPrint::Group:0x81a0a68 @group=2, @tail=1, @buf=[#<Pre
ttyPrint::Text:0x81a09f0 @tail=1, @width=1, @text="1">], @singleline_width=1>, #
<PrettyPrint::Text:0x81a0a7c @tail=0, @width=1, @text=",">, #<PrettyPrint::Break
able:0x81a0a2c @group=2, @gensace=#<Proc:0x81a......Print::Group:0x81a09c8 @group=2, @tail=1, @
buf=[#<PrettyPrint::Text:0x81a0950 @tail=1, @width=1, @text="2">], @singleline_w
idth=1>, #<PrettyPrint::Text:0x81a0af4 @tail=0, @width=1, @text="]">], @singleli
ne_width=6>], @singleline_width=6>, @sharing_detection=false>
pp による pretty-print... -
MonitorMixin (66.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
...uire 'monitor'
buf = []
buf.extend(MonitorMixin) # 配列にモニタ機能を追加
empty_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数
# consumer
Thread.start do
loop do
buf.synchronize do # ロックする
empty_cond.wait_while { buf.empty? } #......る間はロックを開放して待つ
print buf.shift # 配列が空でなくなった後ロックを取得してこの行を実行
end # ロックを開放
end
end
# producer
while line = ARGF.gets
buf.synchronize do # ロックする
buf.push(line) # 配列を変更(追加)......うに Object#extend を使って利用する場合は
自動的に初期化されます。
//emlist[extend する例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
//}
しかし、MonitorMixin をクラス定義の際に Module#include を使って
利用する場合は、initialize... -
Readline
. # readline(prompt = "" , add _ hist = false) -> String | nil (66.0) -
prompt を出力し、ユーザからのキー入力を待ちます。 エンターキーの押下などでユーザが文字列を入力し終えると、 入力した文字列を返します。 このとき、add_hist が true であれば、入力した文字列を入力履歴に追加します。 何も入力していない状態で EOF(UNIX では ^D) を入力するなどで、 ユーザからの入力がない場合は nil を返します。
...ile buf = Readline.readline
p buf
end
rescue Interrupt
system("stty", stty_save)
exit
end
例: INTシグナルを捕捉して、端末状態を復帰する。
require 'readline'
stty_save = `stty -g`.chomp
trap("INT") { system "stty", stty_save; exit }
while buf =......Readline.readline
p buf
end
また、単に ^C を無視する方法もあります。
require 'readline'
trap("INT", "SIG_IGN")
while buf = Readline.readline
p buf
end
入力履歴 Readline::HISTORY を使用して、次のようなこともできます。
例: 空行や直......e buf = Readline.readline("> ", true)
# p Readline::HISTORY.to_a
Readline::HISTORY.pop if /^\s*$/ =~ buf
begin
if Readline::HISTORY[Readline::HISTORY.length-2] == buf
Readline::HISTORY.pop
end
rescue IndexError
end
# p Readline::HISTORY.to_a
print... -
Readline (36.0)
-
GNU Readline によるコマンドライン入力インタフェースを提供するモジュールです。
...す。
例: プロンプト"> "を表示して、ユーザからの入力を取得する。
require 'readline'
while buf = Readline.readline("> ", true)
print("-> ", buf, "\n")
end
ユーザが入力した内容を履歴(以下、ヒストリ)として記録することができます......、Readline::HISTORY.to_a により、
全ての入力した内容を文字列の配列として取得できます。
例: ヒストリを配列として取得する。
require 'readline'
while buf = Readline.readline("> ", true)
p Readline::HISTORY.to_a
print("-> ", buf, "\n")
end... -
Monitor (30.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...{
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.gets
mon.synchronize do
buf.push(line)
emp... -
Readline
. completion _ proc=(proc) (18.0) -
ユーザからの入力を補完する時の候補を取得する Proc オブジェクト proc を指定します。 proc は、次のものを想定しています。 (1) callメソッドを持つ。callメソッドを持たない場合、例外 ArgumentError を発生します。 (2) 引数にユーザからの入力文字列を取る。 (3) 候補の文字列の配列を返す。
...。
例: foo、foobar、foobazを補完する。
require 'readline'
WORDS = %w(foo foobar foobaz)
Readline.completion_proc = proc {|word|
WORDS.grep(/\A#{Regexp.quote word}/)
}
while buf = Readline.readline("> ")
print "-> ", buf, "\n"
end
@see Readline.completion_proc...