From: "matz (Yukihiro Matsumoto)" Date: 2013-02-05T09:42:55+09:00 Subject: [ruby-core:51859] [ruby-trunk - Bug #7782][Closed] Struct both has and does not have an allocator Issue #7782 has been updated by matz (Yukihiro Matsumoto). Status changed from Open to Closed "allocator" in the error message does not mean #allocate method, but internal C function (thus TypeError not NoMethodError). We haven't provide the way to check if a class can be allocated, except for actually allocating an object. I don't think we need to prepare the way to check explicitly. Matz. ---------------------------------------- Bug #7782: Struct both has and does not have an allocator https://bugs.ruby-lang.org/issues/7782#change-35839 Author: trans (Thomas Sawyer) Status: Closed Priority: Normal Assignee: Category: core Target version: 1.9.3 ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux] =begin One the one hand: >> Struct.allocate TypeError: allocator undefined for Struct from (irb):1:in `allocate' from (irb):1 from /opt/Ruby/1.9.3-p327/bin/irb:12:in `
' But on the other: >> Struct.method(:allocate) => # In my current case, I need a reliable way to check if a class can be allocated or not. How can one do this if the method is remains present even when it can not be used? =end -- http://bugs.ruby-lang.org/