From: ruby-core@... Date: 2017-02-03T18:27:39+00:00 Subject: [ruby-core:79415] [Ruby trunk Bug#13169] Fix OpenStruct#each_pair return value Issue #13169 has been updated by Marc-Andre Lafortune. Thank you for the great patch :-) ---------------------------------------- Bug #13169: Fix OpenStruct#each_pair return value https://bugs.ruby-lang.org/issues/13169#change-62845 * Author: 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: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- ``` 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 # => # 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: