Sha256: bd8519be432cf45ebb9fa9e3470795624dcc92a07a403cfc877f6378c022ffd8
Contents?: true
Size: 561 Bytes
Versions: 5
Compression:
Stored size: 561 Bytes
Contents
class ActiveShepherd::DeepReverseChanges < Struct.new(:changes) def reverse changer = ->(h) { unless h.is_a?(Hash) binding.pry end h.each_with_object({}) do |(k,v), new_hash| if v.is_a?(Array) && v.size == 2 new_hash[k] = [v.last, v.first] elsif v.is_a?(Hash) new_hash[k] = changer.call(v) elsif :_create == k.to_sym new_hash[:_destroy] = v elsif :_destroy == k.to_sym new_hash[:_create] = v end end } changer.call(changes) end end
Version data entries
5 entries across 5 versions & 1 rubygems