[#24648] [Bug #1852] Enumerable's #hash Raises ArgumentError When Recursive Values are Present — Run Paint Run Run <redmine@...>

Bug #1852: Enumerable's #hash Raises ArgumentError When Recursive Values are Present

20 messages 2009/08/01
[#24649] Re: [Bug #1852] Enumerable's #hash Raises ArgumentError When Recursive Values are Present — Tanaka Akira <akr@...> 2009/08/01

In article <4a73e51b5a4f9_138119f2a982704e@redmine.ruby-lang.org>,

[#24652] Re: [Bug #1852] Enumerable's #hash Raises ArgumentError When Recursive Values are Present — Run Paint Run Run <runrun@...> 2009/08/01

> Is it valuable to implement such function?

[#24682] Re: [Bug #1852] Enumerable's #hash Raises ArgumentError When Recursive Values are Present — Tanaka Akira <akr@...> 2009/08/02

In article <67e307490908010125r6fa76654pa8e2224f714588fc@mail.gmail.com>,

[#24673] [Feature #1857] install *.h and *.inc — Roger Pack <redmine@...>

Feature #1857: install *.h and *.inc

21 messages 2009/08/01

[#24732] [Bug #1873] MatchData#[]: Omits All But Last Captures Corresponding to the Same Named Group — Run Paint Run Run <redmine@...>

Bug #1873: MatchData#[]: Omits All But Last Captures Corresponding to the Same Named Group

12 messages 2009/08/03

[#24775] [Feature #1889] Teach Onigurma Unicode 5.0 Character Properties — Run Paint Run Run <redmine@...>

Feature #1889: Teach Onigurma Unicode 5.0 Character Properties

30 messages 2009/08/05

[#24786] [Bug #1893] Recursive Enumerable#join is surprising — Jeremy Kemper <redmine@...>

Bug #1893: Recursive Enumerable#join is surprising

24 messages 2009/08/06
[#28422] [Bug #1893] Recursive Enumerable#join is surprising — Yusuke Endoh <redmine@...> 2010/03/02

Issue #1893 has been updated by Yusuke Endoh.

[#28438] Re: [Bug #1893] Recursive Enumerable#join is surprising — Yukihiro Matsumoto <matz@...> 2010/03/03

Hi,

[#24854] embedding ruby 1.9 frustration — Rolando Abarca <funkaster@...>

Hello,

12 messages 2009/08/10

[#24982] [Feature #1961] Kernel#__dir__ — Yutaka HARA <redmine@...>

Feature #1961: Kernel#__dir__

26 messages 2009/08/19
[#28898] [Feature #1961] Kernel#__dir__ — Roger Pack <redmine@...> 2010/03/23

Issue #1961 has been updated by Roger Pack.

[#28900] Re: [Feature #1961] Kernel#__dir__ — Kornelius Kalnbach <murphy@...> 2010/03/23

On 23.03.10 19:10, Roger Pack wrote:

[#25025] [Backport #1975] Backport Dir.mktmpdir — Kirk Haines <redmine@...>

Backport #1975: Backport Dir.mktmpdir

12 messages 2009/08/21

[#25041] Proposal: Simpler block format — Yehuda Katz <wycats@...>

I'd like to propose that we add the following syntax for procs in Ruby:

45 messages 2009/08/23
[#25046] Re: Proposal: Simpler block format — Caleb Clausen <caleb@...> 2009/08/23

Yehuda Katz wrote:

[#25049] Re: Proposal: Simpler block format — Yehuda Katz <wycats@...> 2009/08/23

On Sat, Aug 22, 2009 at 7:38 PM, Caleb Clausen <caleb@inforadical.net>wrote:

[#25058] Re: Proposal: Simpler block format — Yukihiro Matsumoto <matz@...> 2009/08/23

Hi,

[#25059] Re: Proposal: Simpler block format — Yehuda Katz <wycats@...> 2009/08/23

On Sun, Aug 23, 2009 at 3:33 PM, Yukihiro Matsumoto <matz@ruby-lang.org>wrote:

[#25063] Re: Proposal: Simpler block format — "David A. Black" <dblack@...> 2009/08/23

Hi --

[#25068] Re: Proposal: Simpler block format — brian ford <brixen@...> 2009/08/24

Hi,

[#25086] [Bug #1991] ruby should use twolevel namespace on OS X — Michal Suchanek <redmine@...>

Bug #1991: ruby should use twolevel namespace on OS X

12 messages 2009/08/24

[#25208] Module#prepend and Array#prepend — Yehuda Katz <wycats@...>

Matz,

23 messages 2009/08/30

[#25210] [Feature #2022] Patch for ruby-1.8.6 and openssl-1.0 — Jeroen van Meeuwen <redmine@...>

Feature #2022: Patch for ruby-1.8.6 and openssl-1.0

15 messages 2009/08/30

[#25220] [Bug #2026] String encodings are not supported by most of IO on Linux — Vit Ondruch <redmine@...>

Bug #2026: String encodings are not supported by most of IO on Linux

18 messages 2009/08/31

[ruby-core:24967] [ANN] Initial release of the desc_method gem--a "run time RI for methods"

From: Roger Pack <rogerdpack@...>
Date: 2009-08-18 16:06:05 UTC
List: ruby-core #24967
I am pleased to announce the release of desc_method.

A "run time RI for methods", this gem allows you to query for
information about objects' methods within irb or a ruby-debug prompt.
It reveals everything known about the method.  This includes source,
ri, arity, rdoc comments (on 1.9), etc. where available

For me it has proved quite useful, and I wouldn't do a ruby-debug
session without it--try it--you might really like it.

Examples:
>> class A;
    def go(a); end;
   end
>> A.desc_method :go
#<UnboundMethod: A#go>      arity: 1
ri for A#go
Nothing known about A
(end ri)
def go(a)
  # do nothing
end
Parameters: go(a)
>> File.desc_method :delete
ri for File.delete
----------------------------------------------------------- File::delete
     File.delete(file_name, ...)  => integer
     File.unlink(file_name, ...)  => integer

     From Ruby 1.9.1
------------------------------------------------------------------------
     Deletes the named files, returning the number of names passed as
     arguments. Raises an exception on any error. See also +Dir::rmdir+.

(end ri)
#<Method: File.delete>     arity: -1
appears to be a c method
#parameters signature: delete( [[:rest]] )


Or (my favorite) using it in a debug session:
(rdb:1) l=
...
=> 74       assert(assigns['order'].order_line_items.map(:unit_price).min >= -5)
...
(rdb:1) desc_method :assert
#<Method: StoreControllerTest(Test::Unit::Assertions)#assert>      arity: -2
ri for Test::Unit::Assertions#assert
------------------------------------------ Test::Unit::Assertions#assert
     assert(boolean, message=nil)

     From gem test-unit-2.0.1
------------------------------------------------------------------------
     Asserts that +boolean+ is not false or nil.

     Example:

       assert [1, 2].include?(5)

(end ri)
def assert(boolean, message = nil)
  _wrap_assertion do
    assert_block("assert should not be called with a block.") do
      (not block_given?)
    end
    assert_block(build_message(message, "<?> is not true.", boolean))
{ boolean }
  end
end
Parameters: assert(boolean, message = nil)
(rdb:1)

========= How to Install=====
$ gem install rogerdpack-desc_method
or
$ gem install rogerdpack-desc_method --source http://gems.github.com
if you don't have gems.github.com as a gem source.

Usage:
>> require 'desc_method'
>> Class.desc_method :method_name # class or instance method name
...
>> some_object.desc_method :method_name
...

Other goodies also included:
Class#desc_class

Examples:
>> Object.desc_class
# outputs descriptive info about that class--RI, method list, etc.
>> Object.desc_class :verbose => true
# outputs RI, method lists including inherited methods, ancestors, all
constants etc.

Kernel#methods
This has been monkey patched to output a "separator" between its
inherited and non inherited methods--i.e.
>> instance.methods
=> [:first, :second, :after_this_are_inherited>>>>>,
:some_inherited_method, :another_inherited_method] # adds in that
separator

Though I'll probably remove that in a future release since it turns
out you can just run Kernel#methods(false) for about as much
usefulness.

=== Thanks ===
This gem wraps for convenience the functionality of
Method#source_location, ruby2ruby, et al, and also contains some code
inspiration from manvenu, SourceRef (MBARI), and Python's Method#desc.
 It also wouldn't be useful without irb and the ruby-debug folks.
Thanks!

Comments/suggestions welcome rogerdpack on gmail or github

In This Thread

Prev Next