0001 // 0002 // Composer.swift 0003 // Kunugi 0004 // 0005 // Created by ito on 1/3/16. 0006 // Copyright © 2016 Yusuke Ito. All rights reserved. 0007 // 0008 0009 infix operator >>> { associativity left } 0010 0011 0012 public func >>>(a: MiddlewareType, b: MiddlewareType) -> MiddlewareType { 0013 return compose(a, b) 0014 } 0015 0016 public func compose(middewares: MiddlewareType...) -> MiddlewareType { 0017 return compose(middewares) 0018 } 0019 0020 public func compose
Composer.swift:13 return compose(a, b)(middewares: [MiddlewareType]) -> MiddlewareType { 0021 return GenericMiddleware { ctx in 0022 for m in middewares { 0023 switch try m.handleIfNeeded(ctx) { 0024 case .Next: 0025 break 0026 case .Respond(let res): 0027 return .Respond(res) 0028 } 0029 } 0030 return .Next 0031 } 0032 }
Application.swift:19 var current = compose(self.middleware)Composer.swift:17 return compose(middewares)Router.swift:173 self.outer = compose(routes)