From: "trans (Thomas Sawyer)" <transfire@...>
Date: 2013-02-06T05:40:28+09:00
Subject: [ruby-core:51885] [ruby-trunk - Bug #7782] Struct both has and does not have an allocator


Issue #7782 has been updated by trans (Thomas Sawyer).


Ah, `else`. I've never used that, and forgotten about it.

So I should be able to write instead:

    begin
      object = type.allocate
    rescue TypeError
      ...
    else
      ...
    end

Reads kind of funny. But okay. I will try that. Thanks.

----------------------------------------
Bug #7782: Struct both has and does not have an allocator
https://bugs.ruby-lang.org/issues/7782#change-35871

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 `<main>'

But on the other:

    >> Struct.method(:allocate)
    => #<Method: Class#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/