るりまサーチ

最速Rubyリファレンスマニュアル検索!
72件ヒット [1-72件を表示] (0.012秒)

別のキーワード

  1. _builtin shift
  2. dbm shift
  3. csv shift
  4. sdbm shift
  5. array shift

ライブラリ

クラス

キーワード

検索結果

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...
...んだ後 (ARGV が空) の動作
p ARGF.gets # => nil
p ARGF.filename # => "-"
//}

Kernel.#gets など一部の組み込み関数は
ARGF
.gets などこのオブジェクトをレシーバとしたメソッドの省略形です。

また、ARGF ARGF.class クラスのインスタンス...

1.6.8から1.8.0への変更点(まとめ) (60.0)

1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))

...derr に変更されました。($deferr はすぐに obsolete に
なりました。$stderr を使ってください)

=== ARGF

: ((<ARGF/ARGF.path>)) [new]

追加 (ARGF.filename の別名) ((<ruby-dev:20197>))

=== Array

: ((<Array#transpose|Array/transpose>)) [new]

追加

: ((<Array#zi...
...rb_define_alloc_func() も参照。

=== Dir

: ((<Dir#path|Dir/path>)) [new]

追加

=== ENV

: ((<ENV/ENV.clear>)) [new]
: ((<ENV/ENV.shift>)) [new]
: ((<ENV/ENV.invert>)) [new]
: ((<ENV/ENV.replace>)) [new]
: ((<ENV/ENV.update>)) [new]

((<Hash>)) との互換性のために定義...
...st>)) [compat]
: ((<Array#last|Array/last>)) [compat]

省略可能な引数を追加

: ((<Array#push|Array/push>)) [compat]
: ((<Array#unshift|Array/unshift>)) [compat]
: ((<Array#insert|Array/insert>)) [compat]

引数が指定されない場合に、ArgumentError 例外が発生しなくな...

NKF (48.0)

nkf(Network Kanji code conversion Filter, https://osdn.net/projects/nkf/) を Ruby から使うためのモジュールです。

...字コード変換コマンドの例です。

//emlist[例][ruby]{
#!/usr/local/bin/ruby

require 'nkf'

opt = ''
opt = ARGV.shift if ARGV[0][0] == ?-

while line = ARGF.gets
print NKF.nkf(opt, line)
end
//}

以下は、漢字コード判別コマンドの例です。

//emlist[例][ruby]{
#!/us...
...=> "SJIS",
NKF::UTF8 => "UTF8",
NKF::BINARY => "BINARY",
NKF::ASCII => "ASCII",
NKF::UNKNOWN => "UNKNOWN",
}

while file = ARGV.shift
str = open(file) {|io| io.gets(nil) }

printf "%-10s ", file
if str.nil?
puts "EMPTY"
else
puts CODES.fetch(NKF.guess(str))
en...
...)
-s Shift_JIS を出力する
-e EUC-JP を出力する
-w UTF-8 を出力する(BOMなし)
-w16 UTF-16 LE を出力する
-J -S -E -W -W16 入力文字列のエンコーディングの推定値を指定する。
-J 入力に JIS を仮定する
-S 入力に Shift_JIS と...

CSV.new(data, options = Hash.new) -> CSV (12.0)

このメソッドは CSV ファイルを読み込んだり、書き出したりするために String か IO のインスタンスをラップします。

...d even if it occurs in a quoted field, assuming that you
would have the same line endings there. If none of those sequences is
found, +data+ is ARGF, Object::STDIN, Object::STDOUT, or
Object::STDERR, or the stream is only available for output, the default
$INPUT_RECORD_SEPARATOR ($/) is u...
...扱います。このとき、:col_sep, :row_sep, :quote_char
はこのインスタンスと同じものを使用します。この設定は CSV#shift
の返り値を配列のかわりに CSV::Row のインスタンスに変更します。
CSV#read の返り値を配列の配列のかわりに...

Monitor (12.0)

スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。

...ond

# 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)
empty_cond.signal
end
end
//}

2回ロックしてもデッドロック...

絞り込み条件を変える

MonitorMixin (12.0)

スレッドの同期機構としてのモニター機能を提供するモジュールです。

...配列が空である間はロックを開放して待つ
print buf.shift # 配列が空でなくなった後ロックを取得してこの行を実行
end # ロックを開放
end
end

# producer
while line = ARGF.gets
buf.synchronize do # ロックする
buf.push(line) # 配列...