FIRConfigValue.swift 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import Foundation
  2. class FIRRemoteConfigValue {
  3. private var _data: Data
  4. private var _source: FIRRemoteConfigSource
  5. init(data: Data?, source: FIRRemoteConfigSource) {
  6. _data = data ?? Data()
  7. _source = source
  8. }
  9. var stringValue: String {
  10. return String(data: _data, encoding: .utf8) ?? ""
  11. }
  12. var numberValue: NSNumber {
  13. return NSNumber(value: Double(stringValue) ?? 0)
  14. }
  15. var dataValue: Data {
  16. return _data
  17. }
  18. var boolValue: Bool {
  19. return self.stringValue.boolValue
  20. }
  21. func JSONValue() -> Any {
  22. if let data = dataValue {
  23. do {
  24. return try JSONSerialization.jsonObject(data)
  25. }
  26. catch let error {
  27. print(error)
  28. }
  29. }
  30. return nil
  31. }
  32. func debugDescription() -> String {
  33. let content = String(format: "Boolean: %@, String: %@, Number: %@, JSON:%@, Data: %@, Source: %@",
  34. String(describing: boolValue), stringValue, numberValue,
  35. String(describing: JSONValue()), String(describing: dataValue),
  36. String(describing: _source))
  37. return String(format: "<%@: %p, %@>", String(describing: Self.self), Unmanaged.passUnretained(self), content)
  38. }
  39. }