From 5bd0080aecceb37850187dee1eef09e999ec89d2 Mon Sep 17 00:00:00 2001 From: kp-cat <52385411+kp-cat@users.noreply.github.com> Date: Thu, 16 Jan 2020 00:50:14 +0100 Subject: [PATCH] objc sample update + logging fix --- ConfigCat.podspec | 2 +- Sources/RolloutEvaluator.swift | 50 +++++++++++++++++----------------- Sources/User.swift | 8 +++--- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/ConfigCat.podspec b/ConfigCat.podspec index 8cad2b0..72cf453 100755 --- a/ConfigCat.podspec +++ b/ConfigCat.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "ConfigCat" - spec.version = "2.4.1" + spec.version = "2.4.2" spec.summary = "ConfigCat Swift SDK" spec.swift_version = "4.2" diff --git a/Sources/RolloutEvaluator.swift b/Sources/RolloutEvaluator.swift index 30ed575..243109b 100644 --- a/Sources/RolloutEvaluator.swift +++ b/Sources/RolloutEvaluator.swift @@ -54,7 +54,7 @@ class RolloutEvaluator { if comparisonValue.isEmpty || userValue.isEmpty { os_log("%@", log: .default, type: .info, - formatNoMatchRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue)) + formatNoMatchRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue)) continue } @@ -66,7 +66,7 @@ class RolloutEvaluator { if splitted.contains(userValue) { os_log("%@", log: .default, type: .info, - formatMatchRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatMatchRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, value: rule[Config.value] as? String ?? "")) return rule[Config.value] as? Value } @@ -77,7 +77,7 @@ class RolloutEvaluator { if !splitted.contains(userValue) { os_log("%@", log: .default, type: .info, - formatMatchRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatMatchRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, value: rule[Config.value] as? String ?? "")) return rule[Config.value] as? Value } @@ -85,7 +85,7 @@ class RolloutEvaluator { case 2: if userValue.contains(comparisonValue) { os_log("%@", log: .default, type: .info, - formatMatchRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatMatchRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, value: rule[Config.value] as? String ?? "")) return rule[Config.value] as? Value } @@ -93,7 +93,7 @@ class RolloutEvaluator { case 3: if !userValue.contains(comparisonValue) { os_log("%@", log: .default, type: .info, - formatMatchRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatMatchRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, value: rule[Config.value] as? String ?? "")) return rule[Config.value] as? Value } @@ -106,13 +106,13 @@ class RolloutEvaluator { // The rule will be ignored if we found an invalid semantic version if let invalidValue = (splitted.first {val -> Bool in Version(val) == nil}) { os_log("%@", log: .default, type: .error, - formatValidationErrorRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatValidationErrorRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, error: "Invalid semantic version: \(invalidValue)")) continue } if Version(userValue) == nil { os_log("%@", log: .default, type: .error, - formatValidationErrorRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatValidationErrorRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, error: "Invalid semantic version: \(userValue)")) continue } @@ -120,7 +120,7 @@ class RolloutEvaluator { if comparator == 4 { // IS ONE OF if Version(userValue) == nil { os_log("%@", log: .default, type: .error, - formatValidationErrorRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatValidationErrorRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, error: "Invalid semantic version: \(userValue)")) continue } @@ -128,7 +128,7 @@ class RolloutEvaluator { if let userValueVersion = Version(userValue) { if (splitted.first {val -> Bool in userValueVersion.isEqualWithoutMetadata(Version(val))} != nil) { os_log("%@", log: .default, type: .info, - formatMatchRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatMatchRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, value: rule[Config.value] as? String ?? "")) return rule[Config.value] as? Value } @@ -136,7 +136,7 @@ class RolloutEvaluator { } else { // IS NOT ONE OF if Version(userValue) == nil { os_log("%@", log: .default, type: .error, - formatValidationErrorRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatValidationErrorRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, error: "Invalid semantic version: \(userValue)")) continue } @@ -144,13 +144,13 @@ class RolloutEvaluator { if let userValueVersion = Version(userValue) { if let invalidValue = (splitted.first {val -> Bool in userValueVersion.isEqualWithoutMetadata(Version(val))}) { os_log("%@", log: .default, type: .error, - formatValidationErrorRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatValidationErrorRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, error: "Invalid semantic version: \(invalidValue)")) continue } os_log("%@", log: .default, type: .info, - formatMatchRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatMatchRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, value: rule[Config.value] as? String ?? "")) return rule[Config.value] as? Value } @@ -160,14 +160,14 @@ class RolloutEvaluator { let comparison = comparisonValue.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) if Version(userValue) == nil { os_log("%@", log: .default, type: .error, - formatValidationErrorRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatValidationErrorRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, error: "Invalid semantic version: \(userValue)")) continue } if Version(comparison) == nil { os_log("%@", log: .default, type: .error, - formatValidationErrorRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatValidationErrorRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, error: "Invalid semantic version: \(comparison)")) continue } @@ -186,7 +186,7 @@ class RolloutEvaluator { || (comparator == 8 && userValueVersionWithoutMetadata > comparisonValueVersionWithoutMetadata) || (comparator == 9 && userValueVersionWithoutMetadata >= comparisonValueVersionWithoutMetadata) { os_log("%@", log: .default, type: .info, - formatMatchRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatMatchRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, value: rule[Config.value] as? String ?? "")) return rule[Config.value] as? Value } @@ -201,7 +201,7 @@ class RolloutEvaluator { || (comparator == 14 && userValueFloat > comparisonValueFloat) || (comparator == 15 && userValueFloat >= comparisonValueFloat) { os_log("%@", log: .default, type: .info, - formatMatchRule(comparisonAttribute: comparisonAttribute, comparator: comparator, comparisonValue: comparisonValue, + formatMatchRule(comparisonAttribute: comparisonAttribute, userValue: userValue, comparator: comparator, comparisonValue: comparisonValue, value: rule[Config.value] as? String ?? "")) return rule[Config.value] as? Value } @@ -237,19 +237,19 @@ class RolloutEvaluator { return json[Config.value] as? Value } - private func formatMatchRule(comparisonAttribute: String, comparator: Int, comparisonValue: String, value: String) -> String { - return String(format: "Evaluating rule: [%@] [%@] [%@] => match, returning: %@", - comparisonAttribute, RolloutEvaluator.comparatorTexts[comparator], comparisonValue, value) + private func formatMatchRule(comparisonAttribute: String, userValue: String, comparator: Int, comparisonValue: String, value: String) -> String { + return String(format: "Evaluating rule: [%@:%@] [%@] [%@] => match, returning: %@", + comparisonAttribute, userValue, RolloutEvaluator.comparatorTexts[comparator], comparisonValue, value) } - private func formatNoMatchRule(comparisonAttribute: String, comparator: Int, comparisonValue: String) -> String { - return String(format: "Evaluating rule: [%@] [%@] [%@] => no match", - comparisonAttribute, RolloutEvaluator.comparatorTexts[comparator], comparisonValue) + private func formatNoMatchRule(comparisonAttribute: String, userValue: String, comparator: Int, comparisonValue: String) -> String { + return String(format: "Evaluating rule: [%@:%@] [%@] [%@] => no match", + comparisonAttribute, userValue, RolloutEvaluator.comparatorTexts[comparator], comparisonValue) } - private func formatValidationErrorRule(comparisonAttribute: String, comparator: Int, comparisonValue: String, error: String) -> String { - return String(format: "Evaluating rule: [%@] [%@] [%@] => SKIP rule. Validation error: %@", - comparisonAttribute, RolloutEvaluator.comparatorTexts[comparator], comparisonValue, error) + private func formatValidationErrorRule(comparisonAttribute: String, userValue: String, comparator: Int, comparisonValue: String, error: String) -> String { + return String(format: "Evaluating rule: [%@:%@] [%@] [%@] => SKIP rule. Validation error: %@", + comparisonAttribute, userValue, RolloutEvaluator.comparatorTexts[comparator], comparisonValue, error) } } diff --git a/Sources/User.swift b/Sources/User.swift index 4d66738..3983649 100644 --- a/Sources/User.swift +++ b/Sources/User.swift @@ -14,10 +14,10 @@ public final class User : NSObject { - Parameter custom: optional, sets the custom attributes of a user. - Returns: A new `User`. */ - public init(identifier: String, - email: String? = nil, - country: String? = nil, - custom: [String: String]? = nil) { + @objc public init(identifier: String, + email: String? = nil, + country: String? = nil, + custom: [String: String]? = nil) { if identifier.isEmpty { assert(false, "identifier cannot be empty")