--4d733338_725a06fb_262
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Content-Disposition: inline
From the source code, I see this:
#define argf_of(obj) (*(struct argf *)DATA_PTR(obj))
#define ARGF argf_of(argf)
# ... ... later on
/*
* Hack to get rdoc to regard ARGF as a class:
* rb_cARGF b_define_class("ARGF", rb_cObject);
*/
rb_cARGF b_class_new(rb_cObject);
rb_set_class_path(rb_cARGF, rb_cObject, "ARGF.class");
rb_define_alloc_func(rb_cARGF, argf_alloc);
That's not a definitive answer, but it does look like the implementers are aware that some of ARGF's edges are hacks.
On Sunday, 6 March 2011 at 1:56 am, Joey Zhou wrote:
> ruby 1.9.2p180 (2011-02-18) [i386-mingw32]
>
> irb(main):001:0> ARGF.class
>