JIS X 3017:2013 プログラム言語Ruby | ページ 41

                                                                                            195
X 3017 : 2013 (ISO/IEC 30170 : 2012)
c) 手順b)の計算結果を値としてもつIntegerクラスのインスタンスを返す。
15.2.19.7.31 Time#yday
yday
可視性 : public
動作 :
a) レシーバの現地時間を計算する(15.2.19.4参照)。その結果をtとする。
b) ayWithinYear(t)を計算する。
c) 手順b)の計算結果を値としてもつIntegerクラスのインスタンスを返す。
15.2.19.7.32 Time#year
year
可視性 : public
動作 :
a) レシーバの現地時間を計算する(15.2.19.4参照)。その結果をtとする。
b) earFromTime(t)を計算する。
c) 手順b)の計算結果を値としてもつIntegerクラスのインスタンスを返す。
15.2.19.7.33 Time#zone
zone
可視性 : public
動作 : レシーバの時間帯属性をZとする。
a) の名前を表すStringクラスの直接のインスタンスを作成する。そのインスタンスの正確な内容は
処理系定義とする。
b) 作成したインスタンスを返す。

15.2.20 IO

15.2.20.1  概要
IOクラスのインスタンスはストリーム,すなわちデータの入力元又は出力先を表す。
IOクラスのインスタンスは次の属性をもつ。
読込み可能フラグ : ストリームからの入力が行えるかを表す真理値。
この値が真のときに限り,IOクラスのインスタンスは読込み可能であるという。
読込み可能でないストリームからの読込みは,IOErrorクラスの直接のインスタンスを例外とし
て発生させる。
書込み可能フラグ : ストリームへの出力が行えるかを表す真理値。
この値が真のときに限り,IOクラスのインスタンスは書込み可能であるという。
書込み可能でないストリームへの書込みは,IOErrorクラスの直接のインスタンスを例外として
発生させる。
オープン中フラグ : ストリームが開いているかどうかを表す真理値。
この値が真のときに限り,IOクラスのインスタンスは開いているという。この値が偽のときに限
り,IOクラスのインスタンスは閉じているという。
閉じているストリームは読込み可能でも,書込み可能でもない。
バッファリングフラグ : ストリームに書き込んだデータの出力が遅延されるかどうかを表す真理値。

――――― [JIS X 3017 pdf 201] ―――――

196
X 3017 : 2013 (ISO/IEC 30170 : 2012)
この値が真のとき,レシーバに対する書込みを,インスタンスメソッドflush又はcloseが呼
び出されるまで保留してよい。
IOクラスのメソッドの実行中に動作中のシステムがエラーを報告したとき,SystemCallErrorクラ
スを例外として発生させてもよい。
IOクラスのinitializeメソッドの動作は未規定とする。すなわち,Objectクラスの定数STDIN,
STDOUT及びSTDERR(15.2.1参照)以外にIOクラスの直接のインスタンスを作成できるかどうかは未
規定とする。
注記 ただし,IOクラスのサブクラスであるFileクラスに関しては,15.2.21.4.1でinitialize
メソッドを規定しているため,newメソッドによってインスタンスを作成できる。
次のIOクラスのメソッド群の規定の中では,バイトは0から255までの整数を表す。
15.2.20.2 直接のスーパークラス
Objectクラス
15.2.20.3 インクルードモジュール
IOクラスは,次のモジュールをインクルードする。
− Enumerable
15.2.20.4 特異メソッド
15.2.20.4.1 IO.open
IO.open(*args, &block)
可視性 : public
動作 :
a) レシーバに対し,argsの全ての要素を実引数にしてnewメソッドを呼び出す。Iを呼出し結果の値と
する。
b) lockが与えられない場合,Iを返す。
c) そうではない場合,blockを,Iを実引数として呼び出す。Vを呼出し結果の値とする。
d) に対し,実引数なしでcloseメソッドを呼び出す(15.2.20.5.1参照)。この処理は,手順c)で例外が
発生したがそれが処理されなかった場合であっても行う。
e) を返す。
例 ブロックが渡された場合,自動的にcloseメソッドが呼ばれる。
File.open("data.txt")[{|f|
puts f.read
}]
ブロックが渡されない場合,プログラマは明示的にcloseメソッドを呼ぶのがよい。
f = File.open("data.txt")
puts f.read
f.close
注記 IOクラスに対するnewメソッドの呼出しの動作は未規定であるため,IOクラスに対するopen
メソッドの呼出しの動作も未規定である。ただし,IOクラスのサブクラスであるFileクラス
に対してopenメソッドを呼び出すことができる。
15.2.20.5 インスタンスメソッド

――――― [JIS X 3017 pdf 202] ―――――

                                                                                            197
X 3017 : 2013 (ISO/IEC 30170 : 2012)
15.2.20.5.1 IO#close
close
可視性 : public
動作 :
a) レシーバが閉じている場合,IOErrorクラスの直接のインスタンスを例外として発生させる。
b) レシーバのバッファリングフラグ属性が真であり,レシーバが出力を遅延しているデータをもつ場合,
これらのデータを直ちにレシーバの表すストリームに対して書き出す。
c) レシーバのオープン中フラグ属性を偽にする。
d) 処理系定義の値を返す。
15.2.20.5.2 IO#closed・
closed・
可視性 : public
動作 :
a) レシーバが閉じている場合,trueを返す。
b) そうではない場合,falseを返す。
15.2.20.5.3 IO#each
each(&block)
可視性 : public
動作 :
a) lockが与えられていない場合,このメソッドの動作は未規定とする。
b) レシーバが読込み可能でない場合,IOErrorクラスの直接のインスタンスを例外として発生させる。
c) レシーバがストリームの終端に達している場合,レシーバを返す。
d) そうではない場合,0x0aが読み込まれるか,終端に達するまで,レシーバの表すストリームから読込
みを行う。
e) 手順d)で読み込んだ文字列を内容としてもつStringクラスの直接のインスタンスを作り,それを実
引数としてblockを呼び出す。
f) 手順c)から処理を続ける。
15.2.20.5.4 IO#eachbyte
eachbyte(&block)
可視性 : public
動作 :
a) lockが与えられていない場合,このメソッドの動作は未規定とする。
b) レシーバが読込み可能でない場合,IOErrorクラスの直接のインスタンスを例外として発生させる。
c) レシーバがストリームの終端に達している場合,レシーバを返す。
d) そうではない場合,レシーバの表すストリームから1バイト読み込み,それを値としてもつInteger
クラスのインスタンスを実引数としてblockを呼び出す。
e) 手順c)から処理を続ける。
15.2.20.5.5 IO#eachline
eachline(&block)

――――― [JIS X 3017 pdf 203] ―――――

198
X 3017 : 2013 (ISO/IEC 30170 : 2012)
可視性 : public
動作 : eachメソッドと同じとする(15.2.20.5.3参照)。
15.2.20.5.6 IO#eof・
eof・
可視性 : public
動作 :
a) レシーバが読込み可能でない場合,IOErrorクラスの直接のインスタンスを例外として発生させる。
b) レシーバがストリームの終端に達している場合,trueを返す。そうではない場合,falseを返す。
15.2.20.5.7 IO#flush
flush
可視性 : public
動作 :
a) レシーバが書込み可能でない場合,IOErrorクラスの直接のインスタンスを例外として発生させる。
b) レシーバのバッファリングフラグ属性が真であり,レシーバが出力を遅延しているデータをもつ場合,
これらのデータを直ちにレシーバの表すストリームに対して書き出す。
c) レシーバを返す。
15.2.20.5.8 IO#getc
getc
可視性 : public
動作 :
a) レシーバが読込み可能でない場合,IOErrorクラスの直接のインスタンスを例外として発生させる。
b) レシーバがストリームの終端に達している場合,nilを返す。
c) そうではない場合,レシーバから1文字読み込み,その文字を表すObjectクラスのインスタンス
(15.2.10.1参照)を返す。
15.2.20.5.9 IO#gets
gets
可視性 : public
動作 :
a) レシーバが読込み可能でない場合,IOErrorクラスの直接のインスタンスを例外として発生させる。
b) レシーバがストリームの終端に達している場合,nilを返す。
c) そうではない場合,0x0aが読み込まれるか,終端に達するまで,レシーバの表すストリームから文字
を読み込む。
d) 手順c)で読み込んだ文字列を内容としてもつStringクラスの直接のインスタンスを作って返す。
15.2.20.5.10 IO#initializecopy
initializecopy(original)
可視性 : private
動作 : このメソッドの動作は未規定とする。
15.2.20.5.11 IO#print
print(*args)

――――― [JIS X 3017 pdf 204] ―――――

                                                                                            199
X 3017 : 2013 (ISO/IEC 30170 : 2012)
可視性 : public
動作 :
a) rgsのそれぞれの要素Vについて,添字順に次の手順を行う。
1) がnilの場合,規格適合処理系は,内容が “nil” であるStringクラスの直接のインスタンスを
作成し,Vをそのインスタンスとしてもよい。
2) レシーバに対し,Vを実引数としてwriteメソッドを呼び出す。
b) 処理系定義の値を返す。
15.2.20.5.12 IO#putc
putc(obj)
可視性 : public
動作 :
a) bjがIntegerクラスのインスタンスでもStringクラスのインスタンスでもない場合,このメソッ
ドの動作は未規定とする。objが,値が0未満又は255より大きいIntegerクラスのインスタンスの
場合,このメソッドの動作は未規定とする。
b) bjがIntegerクラスのインスタンスの場合,文字符号がobjの値に等しい文字だけを内容としても
つStringクラスの直接のインスタンスSを作る。
c) bjがStringクラスのインスタンスの場合,objの最初の文字だけを内容としてもつStringクラス
の直接のインスタンスSを作る。
d) レシーバに対し,Sを実引数としてwriteメソッドを呼び出す。
e) bjを返す。
15.2.20.5.13 IO#puts
puts(*args)
可視性 : public
動作 :
a) rgsの長さが0の場合,0x0aを1文字だけ内容としてもつStringクラスの直接のインスタンスを作
り,それを実引数としてレシーバに対しwriteメソッドを呼び出す。
b) そうではない場合,argsのそれぞれの要素Eについて,添字順に次の手順を行う。
1) がArrayクラスのインスタンスの場合,Eのそれぞれの要素Xについて,添字順に次の手順を行
う。
i) XがEと同じオブジェクトである,すなわちEが自分自身を含む場合,処理系定義の内容をもつ
Stringクラスのインスタンスを実引数として,レシーバに対しwriteメソッドを呼び出す。
ii) そうではない場合,Xを実引数としてレシーバに対しwriteメソッドを呼び出す。
2) そうではない場合,次の手順を行う。
i) Eがnilの場合,規格適合処理系は,内容が “nil” であるStringクラスの直接のインスタンス
を作成し,Eをそのインスタンスとしてもよい。
ii) がStringクラスのインスタンスでない場合,Eに対しtosメソッドを呼び出す。呼出し結
果の値がStringクラスのインスタンスである場合,Eを呼出し結果の値とする。そうではない
場合,このメソッドの動作は未規定とする。
iii) を実引数としてレシーバに対しwriteメソッドを呼び出す。

――――― [JIS X 3017 pdf 205] ―――――

次のページ PDF 206

JIS X 3017:2013の引用国際規格 ISO 一覧

  • ISO/IEC 30170:2012(IDT)

JIS X 3017:2013の国際規格 ICS 分類一覧