Improve the doc example of `method_missing`

Improvements are:
* Use `symbol` instead of `methId`, described in doc
* Add `*args` following method signature
* Rescue error in `roman_to_int` and calls `super`, recommended in doc
* Call invalid `foo` method to Roman object to raise NoMethodError
This commit is contained in:
OKURA Masafumi 2019-08-16 22:56:30 +09:00 коммит произвёл Nobuyoshi Nakada
Родитель 045152df9e
Коммит 042be439d9
1 изменённых файлов: 9 добавлений и 3 удалений

Просмотреть файл

@ -634,9 +634,14 @@ NORETURN(static void raise_method_missing(rb_execution_context_t *ec, int argc,
* def roman_to_int(str)
* # ...
* end
* def method_missing(methId)
* str = methId.id2name
* roman_to_int(str)
*
* def method_missing(symbol, *args)
* str = symbol.id2name
* begin
* roman_to_int(str)
* rescue
* super(symbol, *args)
* end
* end
* end
*
@ -644,6 +649,7 @@ NORETURN(static void raise_method_missing(rb_execution_context_t *ec, int argc,
* r.iv #=> 4
* r.xxiii #=> 23
* r.mm #=> 2000
* r.foo #=> NoMethodError
*/
static VALUE