Ruby組み込み定数
組み込み定数は、 STDINでいうなら、正式には Object::STDINという名前空間が定義済みということ
STDIN
標準入力である。
IOオブジェクト。getsメソッドをとったりできる
IOオブジェクトを検証。getsがprivate_methodだったので sendした
ruby -e 'p IO.__send__(:gets).chomp.capitalize' aaa "Aaa"
$ ruby -e 'p STDIN.gets.chomp.capitalize' bbB "Bbb"
STDOUT
標準出力。コンソールへの出力 putsやprintが利用可能
$ ruby -e "p STDOUT.puts(gets)"
ではないことに注目
$ ruby -e "STDOUT.puts(gets)"
STDERR
標準エラー出力。 実際にアプリケーションつくるときは出力先をログファイルなどにふりむけるのだろう
$ ruby -e 'STDERR.puts("Hello STDERR!")' Hello STDERR!
ARGV
引数。
$ ruby -e 'p ARGV' "hoge" ["hoge"]
ENV
環境変数がHashで入っている。
$ ruby -e 'ENV.each{|k, v| puts("#{k}: #{v}")}' RBENV_VERSION: 2.1.5 TERM_PROGRAM: Apple_Terminal TERM: xterm-256color SHELL: /bin/bash ... ...
ARGF
スクリプトに指定された引数をファイル名とみなして、仮想的に扱えるようにしたもの
# hoge.rb
puts あなたのお名前何ですか?
$ ruby -e 'ARGF.each_line{|l| puts l}' "Documents/test/hoge.rb"
RUBY_ENGINE, RUBY_COPYRIGHTなど
$ ruby -e '[RUBY_ENGINE,RUBY_COPYRIGHT,RUBY_DESCRIPTION,RUBY_PATCHLEVEL,RUBY_PLATFORM,RUBY_RELEASE_DATE,RUBY_VERSION].each{|v| puts v}' ruby ruby - Copyright (C) 1993-2014 Yukihiro Matsumoto ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0] 273 x86_64-darwin14.0 2014-11-13 2.1.5
DATA
DATA
DATA.each {|line| print line } #=> 漢詩が順番に出力される __END__ 静夜思 李白 牀前看月光 疑是地上霜 擧頭望山月 低頭思故郷