From: mail@... Date: 2014-10-13T19:51:56+00:00 Subject: [ruby-core:65680] [ruby-trunk - Feature #10378] [Open] [PATCH 0/3] It's better (1 + 0i).real? return true Issue #10378 has been reported by gogo tanaka. ---------------------------------------- Feature #10378: [PATCH 0/3] It's better (1 + 0i).real? return true https://bugs.ruby-lang.org/issues/10378 * Author: gogo tanaka * Status: Open * Priority: Normal * Assignee: * Category: core * Target version: current: 2.2.0 ---------------------------------------- Right now, `Complex#real?` return `false` anytime. I suppose `#is_a?(Complex)` is enough to check whether a object is `Complex`'s object or not. (I have to admire `#real?` is more useful than `#is_a?(Complex)`) But what we really want to know is whether a object whose class has `Numeric` as superclass is equal to real number or not. Actually whichever is ok, modifying `#real?` or implementing as new method(e.g #real_num? ... :( Anyway, I wanna method like that for `Complex`. ```cpp static VALUE nucomp_real_p(VALUE self) { get_dat1(self); if (rb_equal(dat->imag, INT2FIX(0))) { return Qtrue; } return Qfalse; } ``` By the way, I can find two coding styles through ruby source code. Which is prefer? it doesn't matter? ```cpp if(...) return ... retrun ... ``` or ```cpp if(...) { return ... } retrun ... ``` -- https://bugs.ruby-lang.org/