種類
- インスタンスメソッド (48)
- 文書 (12)
- オブジェクト (12)
- モジュール (12)
クラス
-
ARGF
. class (48)
キーワード
- MonitorMixin (12)
-
inplace
_ mode (12) -
inplace
_ mode= (12) - inspect (12)
-
to
_ s (12) - 制御構造 (12)
検索結果
先頭5件
-
ARGF (38102.0)
-
スクリプトに指定した引数 (Object::ARGV を参照) をファイル名とみなして、 それらのファイルを連結した 1 つの仮想ファイルを表すオブジェクトです。 ARGV が空なら標準入力を対象とします。 ARGV を変更すればこのオブジェクトの動作に影響します。
...ます。
//emlist[][ruby]{
while line = ARGF.gets
# do something
end
//}
は、
//emlist[][ruby]{
while argv = ARGV.shift
File.open(argv) {|file|
while line = file.gets
# do something
end
}
end
//}
のように動作します。
ARGF を処理するごとに ARGV の要素......で ARGF を読み込んだ後、再度 ARGF から内容を読むと
(ARGV が空なので)標準入力からの読み込みとなります。
//emlist[][ruby]{
ARGV.replace %w(/tmp/foo /tmp/bar)
ARGF.each {|line|
# 処理中の ARGV の内容を表示
p [ARGF.filename, ARGV]
ARGF.skip......します。
また ARGF.class#inplace_mode= を使用して起動後にモードに入ることも出来ます。
このモードで動作中は $stdout が処理対象への書き出しストリームで置き換えられます。
実行例は d:spec/rubycmd#cmd_option や ARGF.class#inplace_mode... -
制御構造 (23042.0)
-
制御構造 条件分岐: * if * unless * case 繰り返し: * while * until * for * break * next * redo * retry 例外処理: * raise * begin その他: * return * BEGIN * END
...の右辺に置くと
syntax error になります)。
RubyはC言語やPerlから引き継いだ制御構造を持ちますが、
その他にd:spec/call#blockという
制御構造の抽象化を援助する機能があります。ブロック付きメソッド呼び出しは
繰り返しを始......e {a: 1, b: 2, c: 3}
in a: Integer => m
"matched: #{m}"
else
"not matched"
end
# => "matched: 1"
//}
パターンマッチ構文についてはspec/pattern_matchingで説明しています。
=== 繰り返し
====[a:while] while
//emlist[例][ruby]{
ary = [0,2,4,8,16,32,64,128,256,512,1024]......数を指定した場合はループの戻り値はその引数になります。
====[a:next] next
//emlist[例][ruby]{
# 空行を捨てるcat
ARGF.each_line do |line|
next if line.strip.empty?
print line
end
//}
文法:
next
next val
nextはもっとも内側のル... -
ARGF
. class # inspect -> String (9116.0) -
常に文字列 "ARGF" を返します。
...常に文字列 "ARGF" を返します。... -
ARGF
. class # to _ s -> String (6016.0) -
常に文字列 "ARGF" を返します。
...常に文字列 "ARGF" を返します。... -
ARGF
. class # inplace _ mode -> String | nil (3058.0) -
c:ARGF#inplace で書き換えるファイルのバックアップに付加される拡 張子を返します。拡張子が設定されていない場合は空文字列を返します。イン プレースモードでない場合は nil を返します。
...c:ARGF#inplace で書き換えるファイルのバックアップに付加される拡
張子を返します。拡張子が設定されていない場合は空文字列を返します。イン
プレースモードでない場合は nil を返します。
Ruby 起動時の -i オプション や......"test"
# test.rb
ARGF.inplace_mode # => ".bak"
ARGF.each_line {|e|print e.upcase} # => "TEST"
例:
# $ echo "test" > test.txt
# $ ruby test.rb test.txt
# $ cat test.txt # => "test"
# test.rb
ARGF.inplace_mode # => nil
ARGF.each_line {|e|prin......t e.upcase} # => "TEST"
@see d:spec/rubycmd#cmd_option, ARGF.class#inplace_mode=... -
ARGF
. class # inplace _ mode=(ext) (3052.0) -
c:ARGF#inplace時にバックアップファイルに付加する拡張子を設定します。 ピリオドも含めて指定する必要があります。
...c:ARGF#inplace時にバックアップファイルに付加する拡張子を設定します。
ピリオドも含めて指定する必要があります。
バックアップを残さない場合は空文字列を指定します。
この機能は Windows では使用出来ません。
設定が......ピリオドも含める必要があります。
$ ruby argf.rb file.txt
---- argf.rb ----
# 引数のファイル中の各行の最初の "foo" を "bar" で置き換える
ARGF.inplace_mode = '.bak'
ARGF.lines do |line|
print line.sub("foo","bar")
end
---- -i オ......プションを使う場合 ----
$ ruby -i.bak -p -e '$_.sub!("foo","bar")' file.txt
---- -i オプションを使う場合その2 ----
$ ruby -i.bak -n -e 'print $_.sub("foo","bar")' file.txt
@see d:spec/rubycmd#cmd_option, ARGF.class#inplace_mode... -
MonitorMixin (12.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
....shift # 配列が空でなくなった後ロックを取得してこの行を実行
end # ロックを開放
end
end
# producer
while line = ARGF.gets
buf.synchronize do # ロックする
buf.push(line) # 配列を変更(追加)
empty_cond.signal # 配列に要素が追加された......ークラスの initialize に引数を渡したい場合は super を、そうでない場合は super() を呼んで下さい。
詳しくは、d:spec/call#super を参照して下さい。
例えば、以下の MyObject のスーパークラスは Object であり、その initialize は引数を...