[ruby-core:80403] [Ruby trunk Bug#13169] Fix OpenStruct#each_pair return value

From: nagachika00@...
Date: 2017-03-27 16:55:24 UTC
List: ruby-core #80403
Issue #13169 has been updated by nagachika (Tomoyuki Chikanaga).

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.

----------------------------------------
Bug #13169: Fix OpenStruct#each_pair return value
https://bugs.ruby-lang.org/issues/13169#change-63894

* Author: stomar (Marcus Stollsteimer)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
* Backport: 2.2: DONE, 2.3: DONE, 2.4: DONE
----------------------------------------
```
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--------------------------------
ostruct_each_pair.patch (908 Bytes)


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

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next