# File lib/easy_diff/core.rb, line 3
    def self.easy_diff(original, modified)
      removed = nil
      added   = nil

      if original.nil?
        added = modified.safe_dup

      elsif modified.nil?
        removed = original.safe_dup

      elsif original.is_a?(Hash) && modified.is_a?(Hash)
        removed = {}
        added   = {}

        keys_in_common  = original.keys & modified.keys
        keys_removed    = original.keys - modified.keys
        keys_added      = modified.keys - original.keys

        keys_removed.each{ |key| removed[key] = original[key].safe_dup }
        keys_added.each{ |key| added[key] = modified[key].safe_dup }

        keys_in_common.each do |key|
          r, a = easy_diff original[key], modified[key]
          unless _blank?(r) && _blank?(a)
            removed[key] = r
            added[key] = a
          end
        end

      elsif original.is_a?(Array) && modified.is_a?(Array)
        removed = subtract_arrays(original, modified)
        added   = subtract_arrays(modified, original)

      elsif original != modified
        removed   = original
        added     = modified
      end

      return removed, added
    end