chef 11: any way to turn attributes into a ruby hash?

I hope I am not too late to the party but merging the node object with an empty hash did it for me:

chef (12.6.0)> {}.merge(node).class
 => Hash

after a resounding lack of answers both here and on the opscode chef mailing list, i ended up using the following hack:

class Chef
  class Node
   class ImmutableMash
      def to_hash
        h = {}
        self.each do |k,v|
          if v.respond_to?('to_hash')
            h[k] = v.to_hash
          else
            h[k] = v
          end
        end
        return h
      end
    end
  end
end

i put this into the libraries dir in my cookbook; now i can use attribute.to_hash in both chef 10 (which already worked properly and which is unaffected by this monkey-patch) and chef 11. i've also reported this as a bug to opscode:

if you don't want to have to monkey-patch your chef, speak up on this issue: http://tickets.opscode.com/browse/CHEF-3857

Update: monkey-patch ticket was marked closed by these PRs