From 7f1323c3bd7d957740bbc5d2c7c0e1c9f167e501 Mon Sep 17 00:00:00 2001 From: Marc-Andre Lafortune Date: Wed, 2 Sep 2020 16:05:59 -0400 Subject: [PATCH] [ruby/ostruct] Add compatibility for to_h with block in Ruby 2.5 https://github.com/ruby/ostruct/commit/da45de5068 --- lib/ostruct.rb | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/lib/ostruct.rb b/lib/ostruct.rb index 581dd73ea7..1462901d06 100644 --- a/lib/ostruct.rb +++ b/lib/ostruct.rb @@ -166,11 +166,21 @@ class OpenStruct # data.to_h {|name, value| [name.to_s, value.upcase] } # # => {"country" => "AUSTRALIA", "capital" => "CANBERRA" } # - def to_h(&block) - if block - @table.to_h(&block) - else - @table.dup + if {test: :to_h}.to_h{ [:works, true] }[:works] # RUBY_VERSION < 2.6 compatibility + def to_h(&block) + if block + @table.to_h(&block) + else + @table.dup + end + end + else + def to_h(&block) + if block + @table.map(&block).to_h + else + @table.dup + end end end