1

ネストされたハッシュ、配列、文​​字列などを含む、巨大なハッシュである大きなオブジェクトを格納しています。これには非常に似た質問がありますhere。これにより、次のサルパッチが得られます。

class Hash
  def to_utf8
    Hash[
        self.collect do |k, v|
          if (v.respond_to?(:to_utf8))
            [ k, v.to_utf8 ]
          elsif (v.respond_to?(:encoding))
            [ k, v.dup.encode('UTF-8') ]
          else
            [ k, v ]
          end
        end
    ]
  end
end

この答えは素晴らしかったですが、1レベル以上の深さには達していないようで、リファクタリングしてスパイダースルーする方法がわかりません。

4

1 に答える 1