* README.EXT, README.EXT.ja (2.2.2), parse.y (rb_check_id): add

documents for rb_check_id().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2011-09-12 04:38:15 +00:00
parent 821ae88259
commit 4705fcc3c0
4 changed files with 32 additions and 0 deletions

View File

@ -1,3 +1,8 @@
Mon Sep 12 13:38:12 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
* README.EXT, README.EXT.ja (2.2.2), parse.y (rb_check_id): add
documents for rb_check_id().
Mon Sep 12 12:53:39 2011 NAKAMURA Usaku <usa@ruby-lang.org> Mon Sep 12 12:53:39 2011 NAKAMURA Usaku <usa@ruby-lang.org>
* lib/rake/file_list.rb (Rake::FileList#egrep): there is no need to * lib/rake/file_list.rb (Rake::FileList#egrep): there is no need to

View File

@ -442,11 +442,19 @@ or
You can get the ID value from a string within C code by using You can get the ID value from a string within C code by using
rb_intern(const char *name) rb_intern(const char *name)
rb_intern_str(VALUE name)
You can retrieve ID from Ruby object (Symbol or String) given as an You can retrieve ID from Ruby object (Symbol or String) given as an
argument by using argument by using
rb_to_id(VALUE symbol) rb_to_id(VALUE symbol)
rb_check_id(volatile VALUE *name)
These functions try to convert the argument to a String if it was not
a Symbol nor a String. The latter function stores the converted
result into *name, and returns 0 if the string is not a known symbol.
After this function returned a non-zero value, *name is always a
Symbol or a String, otherwise it is a String if the result is 0.
You can convert C ID to Ruby Symbol by using You can convert C ID to Ruby Symbol by using

View File

@ -489,11 +489,19 @@ IDとは変数名メソッド名を表す整数ですRubyの中では
でアクセスできますCからこの整数を得るためには関数 でアクセスできますCからこの整数を得るためには関数
rb_intern(const char *name) rb_intern(const char *name)
rb_intern_str(VALUE name)
を使いますRubyから引数として与えられたシンボル(または文字 を使いますRubyから引数として与えられたシンボル(または文字
列)をIDに変換するには以下の関数を使います 列)をIDに変換するには以下の関数を使います
rb_to_id(VALUE symbol) rb_to_id(VALUE symbol)
rb_check_id(volatile VALUE *name)
もし引数がシンボルでも文字列でもなければ、to_strメソッドで文
字列に変換しようとします.後者の関数はその変換結果を*nameに保
存し,その名前が既知のシンボルでない場合は0を返しますこの関
数が0以外を返した場合は*nameは常にシンボルか文字列であり、0を
返した場合は常に文字列です.
2.2.3 CからRubyのメソッドを呼び出す 2.2.3 CからRubyのメソッドを呼び出す

11
parse.y
View File

@ -10112,6 +10112,17 @@ rb_is_junk_id(ID id)
return is_junk_id(id); return is_junk_id(id);
} }
/**
* Returns ID for the given name if it is interned already, or 0.
*
* \param namep the pointer to the name object
* \return the ID for *namep
* \pre the object referred by \p namep must be a Symbol or
* a String, or possible to convert with to_str method.
* \post the object referred by \p namep is a Symbol or a
* String if non-zero value is returned, or is a String
* if 0 is returned.
*/
ID ID
rb_check_id(volatile VALUE *namep) rb_check_id(volatile VALUE *namep)
{ {