Skip to content

Commit

Permalink
objc sample update + logging fix
Browse files Browse the repository at this point in the history
  • Loading branch information
kp-cat committed Jan 15, 2020
1 parent 3f40b5a commit 5bd0080
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 30 deletions.
2 changes: 1 addition & 1 deletion ConfigCat.podspec
Original file line number Diff line number Diff line change
@@ -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"

Expand Down
50 changes: 25 additions & 25 deletions Sources/RolloutEvaluator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand All @@ -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
}
Expand All @@ -77,23 +77,23 @@ 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
}
// CONTAINS
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
}
// DOES NOT CONTAIN
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
}
Expand All @@ -106,51 +106,51 @@ 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
}

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
}

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
}
}
} 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
}

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
}
Expand All @@ -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
}
Expand All @@ -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
}
Expand All @@ -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
}
Expand Down Expand Up @@ -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)
}
}

Expand Down
8 changes: 4 additions & 4 deletions Sources/User.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down

0 comments on commit 5bd0080

Please sign in to comment.