Project

General

Profile

Feature #6276

to_h as explicit conversion to Hash

Added by marcandre (Marc-Andre Lafortune) about 8 years ago. Updated about 8 years ago.

Status:
Closed
Priority:
Normal
Target version:
[ruby-core:44269]

Description

Dear Matz.

We should establish #to_h as the method for explicit conversion to Hash:

1) Add Hash#to_h: returns self for Hash, or a Hash for subclasses of Hash
2) Add Struct#to_h: as requested in Feature #4862 under the wrong name
3) Add OpenStruct#to_h: see Feature #1400

In addition, please consider adding NilClass#to_h.

Even though you are not completely satisfied with NilClass#to_a, I use it very often. If we ever have something equivalent to the splat operator for hashes, the same hesitations will apply to nil.to_h, but I feel it would still bring more good than problems.

Thanks


Related issues

Related to Ruby master - Feature #5008: Equal rights for Hash (like Array, String, Integer, Float)Rejectedmatz (Yukihiro Matsumoto)07/10/2011Actions

Updated by matz (Yukihiro Matsumoto) about 8 years ago

  • Assignee changed from matz (Yukihiro Matsumoto) to marcandre (Marc-Andre Lafortune)

OK, accepted, include adding nil.to_h.
Marc, could you make patch and check in?

Matz.

Updated by marcandre (Marc-Andre Lafortune) about 8 years ago

Great.

I'll do it with pleasure, expect a slight delay as I'm going in vacation for 10 days.

Thanks

#3

Updated by marcandre (Marc-Andre Lafortune) about 8 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r35339.
Marc-Andre, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • hash.c: Add Hash#to_h [Feature #6276] [rubyspec:84b7fe3f24d2]

Updated by naruse (Yui NARUSE) about 8 years ago

  • Status changed from Closed to Assigned

You didn't add tests for test-all.
If you won't add them, I'll revert them.

Updated by nahi (Hiroshi Nakamura) about 8 years ago

+1 to Naruse-san. Apparently test in the same repository is a must.

#6

Updated by naruse (Yui NARUSE) about 8 years ago

  • Status changed from Assigned to Closed

This issue was solved with changeset r35383.
Marc-Andre, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


Revert r35339-35343 because of no tests.

  • hash.c: Alias ENV.to_h to ENV.to_hash [ref #6276]

  • lib/ostruct.rb: Add OpenStruct#to_h [Feature #6276]

  • struct.c: Add Struct#to_h [Feature #6276]

  • object.c: Add NilClass#to_h [Feature #6276]

  • hash.c: Add Hash#to_h [Feature #6276]

Also available in: Atom PDF