Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @dynamicMemberLookup
- @dynamicCallable
- class Dsl<UrlsType> {
- private let urls: UrlsType
- private var components: [String] = []
- init(urls: UrlsType) {
- self.urls = urls
- }
- subscript(dynamicMember keyPath: KeyPath<UrlsType, String>) -> Dsl {
- components.append(urls[keyPath: keyPath])
- return self
- }
- func dynamicallyCall(withArguments args: [String]) -> Dsl {
- components.append(contentsOf: args)
- return self
- }
- func make(replacements: [String: String] = [:]) -> String {
- return components.joined(separator: "/")
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement