def deobfuscate(original, rescue_with_original_id = true)
      if original.kind_of?(Array)
        return original.map { |value| deobfuscate(value, true) } # Always rescue with original ID
      elsif !(original.kind_of?(Integer) || original.kind_of?(String))
        return original
      end

      # Remove any non-digit formatting characters, and only consider the first 10 digits
      obfuscated_id = original.to_s.delete('^0-9').first(10)

      # 2147483647 is PostgreSQL's Integer Max Value.  If we return a value higher than this, we get weird DB errors
      revealed = [EffectiveObfuscation.show(obfuscated_id, acts_as_obfuscated_opts[:spin]).to_i, 2147483647].min

      if rescue_with_original_id && (revealed >= 2147483647 || revealed > deobfuscated_maximum_id)
        original
      else
        revealed
      end
    end
def deobfuscate(original, rescue_with_original_id = true)
      if original.kind_of?(Array)
        return original.map { |value| deobfuscate(value, true) } # Always rescue with original ID
      elsif !(original.kind_of?(Integer) || original.kind_of?(String))
        return original
      end

      # Remove any non-digit formatting characters, and only consider the first 10 digits
      obfuscated_id = original.to_s.delete('^0-9').first(10)

      # 2147483647 is PostgreSQL's Integer Max Value.  If we return a value higher than this, we get weird DB errors
      revealed = [EffectiveObfuscation.show(obfuscated_id, acts_as_obfuscated_opts[:spin]).to_i, 2147483647].min

      if rescue_with_original_id && (revealed >= 2147483647 || revealed > deobfuscated_maximum_id)
        original
      else
        revealed
      end
    end
If rescue_with_original_id is set to true the original ID will be returned when its Obfuscated Id is not found

 We use this as the default behaviour on everything except Class.find()