Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > ARGFオブジェクト
クラス・モジュールの継承リスト: ARGF.class < Enumerable < Object < Kernel < BasicObject
スクリプトに指定した引数 (Object::ARGV を参照) をファイル名とみなして、それらのファイルを連結した 1 つの仮想ファイルを表すオブジェクトです。 ARGV が空なら標準入力を対象とします。 ARGV を変更すればこのオブジェクトの動作に影響します。
while line = ARGF.gets
# do something
end
は、
while argv = ARGV.shift
File.open(argv) {|file|
while line = file.gets
# do something
end
}
end
のように動作します。
ARGF を処理するごとに ARGV の要素は一つずつ取り除かれます。最後まで ARGF を読み込んだ後、再度 ARGF から内容を読むと (ARGV が空なので)標準入力からの読み込みとなります。
ARGV.replace %w(/tmp/foo /tmp/bar)
ARGF.each {|line|
# 処理中の ARGV の内容を表示
p [ARGF.filename, ARGV]
ARGF.skip
}
# => ["/tmp/foo", ["/tmp/bar"]]
# ["/tmp/bar", []]
# 最後まで読んだ後 (ARGV が空) の動作
p ARGF.gets # => nil
p ARGF.filename # => "-"
Kernel.#gets など一部の組み込み関数は ARGF.gets などこのオブジェクトをレシーバとしたメソッドの省略形です。
また、ARGF は ARGF.class クラスのインスタンスです。各メソッドの詳細は ARGF.class を参照してください。
別名として $< でも ARGF と同じオブジェクトにアクセスできます。
インプレースエディット (in-place edit) モードは Ruby のコマンドライン引数に指定されたファイルの内容を置き換えます。
コマンドラインオプションで -i を指定すると Ruby はこのモードで動作します。また ARGF.class#inplace_mode= を使用して起動後にモードに入ることも出来ます。
このモードで動作中は $stdout が処理対象への書き出しストリームで置き換えられます。実行例は Rubyの起動/コマンドラインオプション や ARGF.class#inplace_mode= を参照してください。
argv
binmode
binmode?
bytes
chars
close
closed?
codepoints
each
each_byte
each_char
each_codepoint
eof
external_encoding
file
filename
fileno
getbyte
getc
gets
inplace_mode
inplace_mode=
inspect
internal_encoding
lineno
lineno=
lines
pos
pos=
print
printf
putc
puts
read
read_nonblock
readbyte
readchar
readline
readlines
readpartial
rewind
seek
set_encoding
skip
to_io
to_write_io
write
!
!=
__id__
__send__
instance_eval
instance_exec
method_missing
singleton_method_added
singleton_method_removed
singleton_method_undefined
all?
any?
chunk
chunk_while
collect
collect_concat
count
cycle
detect
drop
drop_while
each_cons
each_entry
each_slice
each_with_index
each_with_object
entries
find_all
find_index
first
grep
grep_v
group_by
include?
inject
lazy
max
max_by
min
min_by
minmax
minmax_by
none?
one?
partition
reject
reverse_each
slice_after
slice_before
slice_when
sort
sort_by
sum
take
take_while
to_h
to_set
uniq
zip
!~
<=>
==
===
=~
_dump
class
clone
define_singleton_method
display
enum_for
eql?
equal?
extend
freeze
frozen?
hash
initialize
initialize_copy
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
itself
marshal_dump
marshal_load
method
methods
nil?
object_id
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
psych_to_yaml
public_method
public_methods
public_send
remove_instance_variable
respond_to?
respond_to_missing?
send
singleton_class
singleton_method
singleton_methods
taint
tainted?
tap
to_ary
to_hash
to_int
to_proc
to_regexp
to_str
trust
untaint
untrust
untrusted?
.new
.yaml_tag
::ARGF
::ARGV
::DATA
::ENV
::FALSE
::NIL
::RUBY_COPYRIGHT
::RUBY_DESCRIPTION
::RUBY_ENGINE
::RUBY_ENGINE_VERSION
::RUBY_PATCHLEVEL
::RUBY_PLATFORM
::RUBY_RELEASE_DATE
::RUBY_REVISION
::RUBY_VERSION
::SCRIPT_LINES__
::STDERR
::STDIN
::STDOUT
::TOPLEVEL_BINDING
::TRUE