Now we have OpenStruct.new(hash) method. But it can be more consistent if one can use it also in form OpenStruct.new(open_struct) which will create a new instance which is a copy of an argument.
This issue was solved with changeset r37375.
Ilya, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
lib/ostruct.rb: Also accept {Open}Struct as argument to new [ruby-core:47476] [Feature #7007]