[#43120] [ruby-trunk - Bug #6124][Open] What is the purpose of "fake" gems in Ruby — Vit Ondruch <v.ondruch@...>

27 messages 2012/03/07

[#43142] Questions about thread performance (with benchmark included) — Rodrigo Rosenfeld Rosas <rr.rosas@...>

A while ago I've written an article entitled "How Nokogiri and JRuby

10 messages 2012/03/08

[#43148] [ruby-trunk - Feature #6126][Open] Introduce yes/no constants aliases for true/false — Egor Homakov <homakov@...>

16 messages 2012/03/09

[#43238] [ruby-trunk - Feature #6130][Open] inspect using to_s is pain — Thomas Sawyer <transfire@...>

21 messages 2012/03/11

[#43313] [ruby-trunk - Feature #6150][Open] add Enumerable#grep_v — Suraj Kurapati <sunaku@...>

17 messages 2012/03/15

[#43325] [ruby-trunk - Bug #6154][Open] Eliminate extending WaitReadable/Writable at runtime — Charles Nutter <headius@...>

25 messages 2012/03/16

[#43334] [ruby-trunk - Bug #6155][Open] Enumerable::Lazy#flat_map raises an exception when an element does not respond to #each — Dan Kubb <dan.kubb@...>

9 messages 2012/03/16

[#43370] [ruby-trunk - Feature #6166][Open] Enumerator::Lazy#pinch — Thomas Sawyer <transfire@...>

15 messages 2012/03/17

[#43373] [ruby-trunk - Bug #6168][Open] Segfault in OpenSSL bindings — Nguma Abojo <git.email.address@...>

14 messages 2012/03/17

[#43454] [ruby-trunk - Bug #6174][Open] Fix collision of ConditionVariable#wait timeout and #signal (+ other cosmetic changes) — "funny_falcon (Yura Sokolov)" <funny.falcon@...>

10 messages 2012/03/18

[#43497] [ruby-trunk - Bug #6179][Open] File::pos broken in Windows 1.9.3p125 — "jmthomas (Jason Thomas)" <jmthomas@...>

24 messages 2012/03/20

[#43502] [ruby-trunk - Feature #6180][Open] to_b for converting objects to a boolean value — "AaronLasseigne (Aaron Lasseigne)" <aaron.lasseigne@...>

17 messages 2012/03/20

[#43529] [ruby-trunk - Bug #6183][Open] Enumerator::Lazy performance issue — "gregolsen (Innokenty Mikhailov)" <anotheroneman@...>

36 messages 2012/03/21

[#43543] [ruby-trunk - Bug #6184][Open] [BUG] Segmentation fault ruby 1.9.3p165 (2012-03-18 revision 35078) [x86_64-darwin11.3.0] — "Gebor (Pierre-Henry Frohring)" <frohring.pierrehenry@...>

8 messages 2012/03/21

[#43672] [ruby-trunk - Feature #6201][Open] do_something then return :special_case (include "then" operator) — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

12 messages 2012/03/26

[#43678] [ruby-trunk - Bug #6203][Open] Array#values_at does not handle ranges with end index past the end of the array — "ferrous26 (Mark Rada)" <markrada26@...>

15 messages 2012/03/26

[#43794] [ruby-trunk - Feature #6216][Open] SystemStackError backtraces should not be reduced to one line — "postmodern (Hal Brodigan)" <postmodern.mod3@...>

15 messages 2012/03/28

[#43814] [ruby-trunk - Feature #6219][Open] Return value of Hash#store — "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>

20 messages 2012/03/28

[#43858] [ruby-trunk - Feature #6222][Open] Use ++ to connect statements — "gcao (Guoliang Cao)" <gcao99@...>

12 messages 2012/03/29

[#43904] [ruby-trunk - Feature #6225][Open] Hash#+ — "trans (Thomas Sawyer)" <transfire@...>

36 messages 2012/03/29

[#43951] [ruby-trunk - Bug #6228][Open] [mingw] Errno::EBADF in ruby/test_io.rb on ruby_1_9_3 — "jonforums (Jon Forums)" <redmine@...>

28 messages 2012/03/30

[#43996] [ruby-trunk - Bug #6236][Open] WEBrick::HTTPServer swallows Exception — "regularfry (Alex Young)" <alex@...>

13 messages 2012/03/31

[ruby-core:43799] [ruby-trunk - Bug #5887] The documentation of Module.constants is incorrect

From: "shugo (Shugo Maeda)" <redmine@...>
Date: 2012-03-28 15:58:15 UTC
List: ruby-core #43799
Issue #5887 has been updated by shugo (Shugo Maeda).


shugo (Shugo Maeda) wrote:
>  > Actually, you can simply pass a parameter to `Module.constants` and the singleton method will call the instance method. The documentation should definitely reflect this too...
>  
>  Oh, I didn't know that.  However, I doubt that Matz has accepted the feature.
>  
>  The optional arguments of Module.constants were introduced by nobu in
>  r11338, but the change of Module.constants was not described in the
>  commit log.
>  
>      * intern.h, object.c, variable.c (rb_mod_constants): added an optional
>        flag to search ancestors, which is defaulted to true, as well as
>        const_defined? and const_get.  [ruby-dev:29989]
>  
>  It was not discussed in the thread starting from [ruby-dev:29989] either.
>  
>  Is it an official feature?

What do you think of this feature, Matz?
The following code illustrates the current behavior of Module.constants.

  module A
    C1 = 1
  end
  class Module
    include A
    C2 = 2
  end
  module B
    C3 = 3
    # with no argument, get constants available here
    p Module.constants #=> [:C3, :Object, :Module, :Class, ...
    # with an argument, the same behavior as Module#constants
    p Module.constants(false) #=> [:C2]
    p Module.constants(true) #=> [:C2, :C1]
  end

I don't think this code is readable.
It's better to have an alias of Module#constants such as `defined_constants' to avoid the name conflict.

----------------------------------------
Bug #5887: The documentation of Module.constants is incorrect
https://bugs.ruby-lang.org/issues/5887#change-25304

Author: shugo (Shugo Maeda)
Status: Assigned
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: core
Target version: 
ruby -v: ruby 2.0.0dev (2012-01-12 trunk 34015) [i686-linux]


The documentation of Module.constants says "Returns an array of the names of all constants defined in the system. This list includes the names of all modules and classes."  However, Module.constants returns the names of the constants accessible at the place where the method is called:

  class A
    X = 1
    p Module.constants.include?(:X) #=> true
  end

Could someone fix the documentation?  I can't write a proper English documentation.

OT: I think Module.constants should be renamed in the future, because Module.constants is confusing with Module#constants.  Why the hell do I have to write the following tricky code to invoke Module#constants on Module itself?

  p Module.instance_method(:constants).bind(Module).call



-- 
http://bugs.ruby-lang.org/

In This Thread