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

                                                                                            115
X 3017 : 2013 (ISO/IEC 30170 : 2012)
手順c)及びd)を行うかどうかは処理系定義とする。
15.2.2.4.20 Module#constdefined・
constdefined・(symbol)
可視性 : public
動作 :
a) をレシーバとする。
b) ymbolによって指定される名前をNとする。
c) が《定数識別子》という形式でない場合,symbolを名前属性にもつNameErrorクラスの直接のイン
スタンスを例外として発生させる。
d) の定数束縛の集合内に名前がNである束縛が存在する場合,trueを返す。
e) 11.5.4.2の手順d)から,Nの定数束縛を探索する。ここで,11.5.4.2のCはこのメソッド呼出しのレシ
ーバであるとする。ただし,11.5.4.2の手順e) 1) )又は手順e) 2) ii)は行わずに探索を終了する。束縛
が見つかった場合,trueを返す。
f) falseを返す。
手順e)を行うかどうかは処理系定義とする。
15.2.2.4.21 Module#constget
constget(symbol)
可視性 : public
動作 :
a) ymbolによって指定される名前をNとする。
b) が《定数識別子》という形式でない場合,symbolを名前属性にもつNameErrorクラスの直接のイン
スタンスを例外として発生させる。
c) レシーバに対し,名前がNである定数束縛を探す。
d) 束縛が見つかった場合,その束縛の値を返す。
e) 名前がNである定数束縛の探索を,11.5.4.2の手順d)から行う。ここで,11.5.4.2のCはこのメソッド
呼出しのレシーバであるとする。
f) 束縛が見つかった場合,その束縛の値を返す。
g) そうではない場合,constmissingメソッドの呼出し結果の値を返す[11.5.4.2 e) 1) )参照]。
15.2.2.4.22 Module#constmissing
constmissing(symbol)
可視性 : public
動作 : constmissingメソッドは,定数参照において定数束縛が見つからなかった場合に呼び出される
(11.5.4.2参照)。
このメソッドが呼び出された場合,次の手順を行う。
a) 15.2.2.4.20の手順a)から手順c)までを実行する。
b) ymbolを名前属性にもつNameErrorクラスの直接のインスタンスを例外として発生させる。
15.2.2.4.23 Module#constset
constset(symbol, obj)
可視性 : public

――――― [JIS X 3017 pdf 121] ―――――

116
X 3017 : 2013 (ISO/IEC 30170 : 2012)
動作 : Cをレシーバとする。
a) ymbolによって指定される名前をNとする。
b) が《定数識別子》という形式でない場合,symbolを名前属性にもつNameErrorクラスの直接のイン
スタンスを例外として発生させる。
c) の定数束縛の集合内に名前がNである束縛が存在する場合,その束縛の値をobjに置き換える。
d) そうではない場合,Cの定数束縛の集合内に名前がNであり値がobjである束縛を作る。
e) bjを返す。
15.2.2.4.24 Module#constants
constants
可視性 : public
動作 :
a) 定数の名前の空の集合をNSとする。
b) をレシーバとする。Cに定義されている全ての定数の名前をNSに追加する。
c) のインクルードモジュールリストをLとする。LのそれぞれのモジュールMに対し,Mに定義され
ている全ての定数の名前をNSに追加する。
d) がClassクラスのインスタンスの場合,次の手順を行う。
1) が直接のスーパークラスをもたない場合,又はCの直接のスーパークラスがObjectクラスの場
合は,手順e)へ進む。
2) の直接のスーパークラスをSとする。
3) に定義されている全ての定数の名前をNSに追加する。
4) のインクルードモジュールリストをLとする。LのそれぞれのモジュールMに対して,Mに定義
されている全ての定数の名前をNSに追加する。
5) の直接のスーパークラスをCとする。手順d) 1)から処理を継続する。
e) Sの全ての名前を要素にもつArrayクラスの新しい直接のインスタンスAを返す。これらの名前は,
Stringクラス又はSymbol クラスの直接のインスタンスとして表す。どちらのクラスを選ぶかは処
理系定義とする。また,Aの要素の順序も処理系定義とする。
15.2.2.4.25 Module# extendobject
extendobject(object)
可視性 : private
動作 : Sをobjectの特異クラスとする。appendfeaturesメソッド(15.2.2.4.10参照)をレシーバに対
しSを実引数として呼び出し,呼出し結果の値を返す。
15.2.2.4.26 Module#extended
extended(object)
可視性 : private
動作 : nilを返す。
注記 extendedメソッドは,Kernelモジュールのextendメソッド(15.3.1.3.13参照)の中で呼
び出される。extendedメソッドは,extendメソッドの呼出しをフックするために上書きす
ることができる。
15.2.2.4.27 Module#include

――――― [JIS X 3017 pdf 122] ―――――

                                                                                            117
X 3017 : 2013 (ISO/IEC 30170 : 2012)
include(*modulelist)
可視性 : private
動作 : Cをレシーバとする。
a) odulelistのそれぞれの要素Aに対し,modulelist内と逆順に,次の手順を行う。
1) がModuleクラスのインスタンスでない場合,TypeErrorクラスの直接のインスタンスを例外
として発生させる。
2) がClassクラスのインスタンスの場合,TypeErrorクラスの直接のインスタンスを例外として
発生させる。
3) に対し,Cを実引数としてappendfeaturesメソッド(15.2.2.4.10参照)を呼び出す。
4) に対し,Cを実引数としてincludedメソッド(15.2.2.4.29参照)を呼び出す。
b) を返す。
15.2.2.4.28 Module#include・
include・(module)
可視性 : public
動作 : Cをレシーバとする。
a) oduleがModuleクラスのインスタンスでない場合,TypeErrorクラスの直接のインスタンスを例
外として発生させる。
b) oduleがCのインクルードモジュールリストの要素の場合,trueを返す。
c) そうではない場合で,CがClassクラスのインスタンスであり,moduleがCのいずれかのスーパー
クラスのインクルードモジュールリストの要素の場合,trueを返す。
d) それ以外の場合,falseを返す。
15.2.2.4.29 Module#included
included(module)
可視性 : private
動作 : nilを返す。
注記 includedメソッドは,Moduleクラスのincludeメソッド(15.2.2.4.27参照)の中で呼び出
される。includedメソッドは,includeメソッドの呼出しをフックするために上書きするこ
とができる。
15.2.2.4.30 Module#includedmodules
includedmodules
可視性 : public
動作 : Cをレシーバとする。
a) rrayクラスの空の直接のインスタンスAを作る。
b) のインクルードモジュールリストのそれぞれの要素を,リスト内と逆順に,それぞれAの末尾に追
加する。
c) がClassクラスのインスタンスで,Cが直接のスーパークラスをもつ場合,Cの直接のスーパーク
ラスを新たにCとし,手順b)から繰り返す。
d) そうではない場合,Aを返す。
15.2.2.4.31 Module#initialize

――――― [JIS X 3017 pdf 123] ―――――

118
X 3017 : 2013 (ISO/IEC 30170 : 2012)
initialize(&block)
可視性 : private
動作 :
a) lockが与えられている場合,Moduleクラスのclassevalメソッドの手順b)を実行する(15.2.2.4.15
参照)。ここで,15.2.2.4.15のblockはこのメソッドに渡されたblockとする。
b) 処理系定義の値を返す。
15.2.2.4.32 Module#initializecopy
initializecopy(original)
可視性 : private
動作 :
a) ernelモジュールのインスタンスメソッドinitializecopyを,レシーバに対し,originalを実
引数として呼び出す。
b) レシーバが特異クラスと関連付けられている場合,Eoをその特異クラスとして次の処理を行う。
1) 特異クラスEnを作る。Enの直接のスーパークラスは,Eoの直接のスーパークラスとする。
2) oのそれぞれの定数束縛Bv1について,同じ名前及び値をもつ変数束縛をEnの定数束縛の集合内に
作る。
3) oのそれぞれのクラス変数束縛Bv2について,同じ名前及び値をもつ変数束縛をEnのクラス変数束
縛の集合内に作る。
4) oのインスタンスメソッドのそれぞれの束縛Bmについて,同じ名前及び値をもつメソッド束縛を
Enのインスタンスメソッド束縛の集合内に作る。
5) レシーバとEnとを関連付ける。
c) レシーバがClassクラスのインスタンスの場合,次の手順を行う。
1) riginalが直接のスーパークラスをもつ場合,originalの直接のスーパークラスをレシーバの直接の
スーパークラスとする。
2) そうではない場合,このメソッドの動作は未規定とする。
d) riginalのインクルードモジュールリストのそれぞれの要素を,リスト内と同順に,レシーバのインク
ルードモジュールリストの末尾にそれぞれ追加する。
e) riginalのそれぞれの定数束縛Bv3について,同じ名前及び値をもつ変数束縛をレシーバの定数束縛の
集合内に作る。
f) riginalのそれぞれのクラス変数束縛Bv4について,同じ名前及び値をもつ変数束縛をレシーバのクラ
ス変数束縛の集合内に作る。
g) riginalのインスタンスメソッドのそれぞれの束縛Bm2について,同じ名前及び値をもつメソッド束縛
をレシーバのインスタンスメソッド束縛の集合内に作る。
h) 処理系定義の値を返す。
15.2.2.4.33 Module#instancemethods
instancemethods(includesuper=true)
可視性 : public
動作 : Cをレシーバとする。
a) rrayクラスの空の直接のインスタンスAを作る。

――――― [JIS X 3017 pdf 124] ―――――

                                                                                            119
X 3017 : 2013 (ISO/IEC 30170 : 2012)
b) をCのインスタンスメソッド束縛の集合とする。Iのそれぞれの束縛Bに対し,NをBの名前,Vを
Bの値として,次の手順を行う。
1) がundefであるか,Vの可視性がprivateの場合,次の二つの手順は行わない。
2) 内容がNである新しく作ったStringクラスの直接のインスタンス又は名前がNであるSymbol
クラスの直接のインスタンスのいずれかを,Sとする。Sの値としてどちらを選ぶかは処理系定義と
する。
3) をAの末尾に追加する。ただし,SがSymbolクラスのインスタンスでありAが同じ名前のSymbol
クラスのインスタンスを要素にもつ場合,又はSがStringクラスのインスタンスでありAが同じ
内容のStringクラスのインスタンスを要素にもつ場合は追加しない。
c) ncludesuperが真の場合,次の手順を行う。
1) のインクルードモジュールリストのそれぞれのモジュールMに対し,手順b)を行う。ここで,手
順b)のCはMとする。
2) が直接のスーパークラスをもたない場合,Aを返す。
3) の直接のスーパークラスを新たにCとする。
4) 手順b)から繰り返す。
d) を返す。
15.2.2.4.34 Module#methoddefined・
methoddefined・(symbol)
可視性 : public
動作 : Cをレシーバとする。
a) ymbolによって指定される名前をNとする。
b) 名前がNであるインスタンスメソッド束縛を,Cを起点として,13.3.4で規定されているようにして
探す。
c) 束縛が見つかり,その値がundefでない場合,trueを返す。
d) そうではない場合,falseを返す。
15.2.2.4.35 Module#moduleeval
moduleeval(string=nil, &block)
可視性 : public
動作 : classevalメソッドと同じとする(15.2.2.4.15参照)。
15.2.2.4.36 Module#private
private(*symbollist)
可視性 : private
動作 : publicメソッドと同じとする(15.2.2.4.38参照)。ただし,15.2.2.4.38 a)において,NVはprivate
とする。
15.2.2.4.37 Module#protected
protected(*symbollist)
可視性 : private
動作 : publicメソッドと同じとする(15.2.2.4.38参照)。ただし,15.2.2.4.38 a)において,NVはprotected
とする。

――――― [JIS X 3017 pdf 125] ―――――

次のページ PDF 126

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

  • ISO/IEC 30170:2012(IDT)

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