From: Hugh Sasse Date: 2007-10-25T20:02:53+09:00 Subject: Method Missing Doc patch This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---559023410-1903590565-1193310171=:4050 Content-Type: TEXT/PLAIN; charset=US-ASCII One of the aspects of method_missing is what to do about methods you don't want it to handle. I found out from The Ruby Way 2nd Edition that you are supposed to call super in such cases. I forgot this yesterday, tried to search the web to find out what to do and drew a blank. The attached doc patch (against recent snapshots) adds this information to doc comments. They are reproduced below for ease of reading: they are short. HTH Hugh :::::::::::::: ruby_1.8_method_missing_doc_patch :::::::::::::: --- ./eval.c.orig 2007-10-01 14:44:21.000000000 +0100 +++ ./eval.c 2007-10-25 11:54:05.914780000 +0100 @@ -5563,6 +5563,9 @@ * are any arguments that were passed to it. By default, the interpreter * raises an error when this method is called. However, it is possible * to override the method to provide more dynamic behavior. + * If it is decided that a particular method should not be handled, then + * super should be called, so that ancestors can pick up the + * missing method. * The example below creates * a class Roman, which responds to methods with names * consisting of roman numerals, returning the corresponding integer :::::::::::::: ruby_1.9_method_missing_doc_patch :::::::::::::: --- ./eval.c.orig 2007-10-01 02:52:32.000000000 +0100 +++ ./eval.c 2007-10-25 11:42:01.966135000 +0100 @@ -1263,6 +1263,9 @@ * are any arguments that were passed to it. By default, the interpreter * raises an error when this method is called. However, it is possible * to override the method to provide more dynamic behavior. + * If it is decided that a particular method should not be handled, then + * super should be called, so that ancestors can pick up the + * missing method. * The example below creates * a class Roman, which responds to methods with names * consisting of roman numerals, returning the corresponding integer ---559023410-1903590565-1193310171=:4050 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=ruby_1.9_method_missing_doc_patch Content-Transfer-Encoding: BASE64 Content-Description: Content-Disposition: attachment; filename=ruby_1.9_method_missing_doc_patch LS0tIC4vZXZhbC5jLm9yaWcJMjAwNy0xMC0wMSAwMjo1MjozMi4wMDAwMDAw MDAgKzAxMDANCisrKyAuL2V2YWwuYwkyMDA3LTEwLTI1IDExOjQyOjAxLjk2 NjEzNTAwMCArMDEwMA0KQEAgLTEyNjMsNiArMTI2Myw5IEBADQogICogIGFy ZSBhbnkgYXJndW1lbnRzIHRoYXQgd2VyZSBwYXNzZWQgdG8gaXQuIEJ5IGRl ZmF1bHQsIHRoZSBpbnRlcnByZXRlcg0KICAqICByYWlzZXMgYW4gZXJyb3Ig d2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuIEhvd2V2ZXIsIGl0IGlzIHBv c3NpYmxlDQogICogIHRvIG92ZXJyaWRlIHRoZSBtZXRob2QgdG8gcHJvdmlk ZSBtb3JlIGR5bmFtaWMgYmVoYXZpb3IuDQorICogIElmIGl0IGlzIGRlY2lk ZWQgdGhhdCBhIHBhcnRpY3VsYXIgbWV0aG9kIHNob3VsZCBub3QgYmUgaGFu ZGxlZCwgdGhlbg0KKyAqICA8aT5zdXBlcjwvaT4gc2hvdWxkIGJlIGNhbGxl ZCwgc28gdGhhdCBhbmNlc3RvcnMgY2FuIHBpY2sgdXAgdGhlDQorICogIG1p c3NpbmcgbWV0aG9kLg0KICAqICBUaGUgZXhhbXBsZSBiZWxvdyBjcmVhdGVz DQogICogIGEgY2xhc3MgPGNvZGU+Um9tYW48L2NvZGU+LCB3aGljaCByZXNw b25kcyB0byBtZXRob2RzIHdpdGggbmFtZXMNCiAgKiAgY29uc2lzdGluZyBv ZiByb21hbiBudW1lcmFscywgcmV0dXJuaW5nIHRoZSBjb3JyZXNwb25kaW5n IGludGVnZXINCg== ---559023410-1903590565-1193310171=:4050 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=ruby_1.8_method_missing_doc_patch Content-Transfer-Encoding: BASE64 Content-Description: Content-Disposition: attachment; filename=ruby_1.8_method_missing_doc_patch LS0tIC4vZXZhbC5jLm9yaWcJMjAwNy0xMC0wMSAxNDo0NDoyMS4wMDAwMDAw MDAgKzAxMDANCisrKyAuL2V2YWwuYwkyMDA3LTEwLTI1IDExOjU0OjA1Ljkx NDc4MDAwMCArMDEwMA0KQEAgLTU1NjMsNiArNTU2Myw5IEBADQogICogIGFy ZSBhbnkgYXJndW1lbnRzIHRoYXQgd2VyZSBwYXNzZWQgdG8gaXQuIEJ5IGRl ZmF1bHQsIHRoZSBpbnRlcnByZXRlcg0KICAqICByYWlzZXMgYW4gZXJyb3Ig d2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuIEhvd2V2ZXIsIGl0IGlzIHBv c3NpYmxlDQogICogIHRvIG92ZXJyaWRlIHRoZSBtZXRob2QgdG8gcHJvdmlk ZSBtb3JlIGR5bmFtaWMgYmVoYXZpb3IuDQorICogIElmIGl0IGlzIGRlY2lk ZWQgdGhhdCBhIHBhcnRpY3VsYXIgbWV0aG9kIHNob3VsZCBub3QgYmUgaGFu ZGxlZCwgdGhlbg0KKyAqICA8aT5zdXBlcjwvaT4gc2hvdWxkIGJlIGNhbGxl ZCwgc28gdGhhdCBhbmNlc3RvcnMgY2FuIHBpY2sgdXAgdGhlDQorICogIG1p c3NpbmcgbWV0aG9kLg0KICAqICBUaGUgZXhhbXBsZSBiZWxvdyBjcmVhdGVz DQogICogIGEgY2xhc3MgPGNvZGU+Um9tYW48L2NvZGU+LCB3aGljaCByZXNw b25kcyB0byBtZXRob2RzIHdpdGggbmFtZXMNCiAgKiAgY29uc2lzdGluZyBv ZiByb21hbiBudW1lcmFscywgcmV0dXJuaW5nIHRoZSBjb3JyZXNwb25kaW5n IGludGVnZXINCg== ---559023410-1903590565-1193310171=:4050--