Skip to content

Instantly share code, notes, and snippets.

@modestman
Last active December 6, 2018 19:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save modestman/f10bb6ef1e6dc63083d436abeda0997f to your computer and use it in GitHub Desktop.
Save modestman/f10bb6ef1e6dc63083d436abeda0997f to your computer and use it in GitHub Desktop.
// Базовый класс
class Parameters {
var parameters: [String: Any] = [:]
/**
Добавить параметр.
- parameter parameter: имя параметра;
- parameter value: значение параметра.
*/
@discardableResult
open func withParameter(parameter: String, value: Any) -> Self {
self.parameters[parameter] = value
return self
}
}
// реализация сереализатора конкртенного типа
final class CityParameters: Parameters {
private enum Key: String {
case id
case name
case mapTypeValue = "map_type"
case center
case currency
}
init(city: City) {
super.init()
withParameter(parameter: Key.id.rawValue, value: city.id)
withParameter(parameter: Key.name.rawValue, value: city.name)
withParameter(parameter: Key.mapTypeValue.rawValue, value: city.mapTypeValue)
let center = CoordinateParameters(coordinate: city.center).parameters
withParameter(parameter: Key.center.rawValue, value: center)
withParameter(parameter: Key.currency.rawValue, value: city.currency)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment