Actions
Bug #13169
closedFix OpenStruct#each_pair return value
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
Backport:
Description
ostruct.rb: fix OpenStruct#each_pair return value
* lib/ostruct.rb (OpenStruct#each_pair): let #each_pair
with block return self instead of the internal hash table.
Currently OpenStruct#each_pair with block returns the internal hash table, while usually #each, #each_key, #each_byte, and similar methods return self
. Struct#each_pair also returns self
.
require "ostruct"
person = OpenStruct.new(name: "John", age: 70)
person # => #<OpenStruct name="John", age=70>
person.each_pair { } # => {:name=>"John", :age=>70}
I don't know whether this is intended behavior or only an oversight.
The patch makes OpenStruct#each_pair return self
, and also adds a test. (I do not know anything about how tests/specs in the Ruby source are organized, I hope it's fine.)
Files
Updated by marcandre (Marc-Andre Lafortune) about 8 years ago
- Status changed from Open to Closed
Applied in changeset r57515.
lib/ostruct.rb: Fix returned value of each_pair.
From a patch by Marcus Stollsteimer. [Fixes #13169]
Updated by marcandre (Marc-Andre Lafortune) about 8 years ago
Thank you for the great patch :-)
Updated by naruse (Yui NARUSE) about 8 years ago
- Backport changed from 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN to 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: DONE
ruby_2_4 r57893 merged revision(s) 57515.
Updated by nagachika (Tomoyuki Chikanaga) about 8 years ago
- Backport changed from 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: DONE to 2.2: REQUIRED, 2.3: REQUIRED, 2.4: DONE
Updated by usa (Usaku NAKAMURA) about 8 years ago
- Backport changed from 2.2: REQUIRED, 2.3: REQUIRED, 2.4: DONE to 2.2: DONE, 2.3: REQUIRED, 2.4: DONE
ruby_2_2 r58100 merged revision(s) 57515.
Updated by nagachika (Tomoyuki Chikanaga) about 8 years ago
- Backport changed from 2.2: DONE, 2.3: REQUIRED, 2.4: DONE to 2.2: DONE, 2.3: DONE, 2.4: DONE
ruby_2_3 r58178 merged revision(s) 57515.
Actions
Like0
Like0Like0Like0Like0Like0Like0