skell 0.0.1.1 → 0.0.2.0
raw patch · 2 files changed
+9/−3 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Web.Skell.Saferoute: lookupRouteParts :: Resource r => RouteParts -> Maybe r
+ Web.Skell.Saferoute: type RoutePart = Text
+ Web.Skell.Saferoute: type RouteParts = [Text]
- Web.Skell.Saferoute: class Eq r => Resource r where resourceList = elems routeResourceMap routeResourceMap = fromList [(route, resource) | resource <- resourceList, let route = getRoute resource] lookupRoute route = lookup route routeResourceMap getUrl = toValue . getRoute
+ Web.Skell.Saferoute: class Eq r => Resource r where resourceList = elems routeResourceMap routeResourceMap = fromList [(route, resource) | resource <- resourceList, let route = getRoute resource] lookupRoute route = lookup route routeResourceMap lookupRouteParts = lookupRoute . slashPrependJoin getUrl = toValue . getRoute
- Web.Skell.Saferoute: slashPrependJoin :: [Text] -> Text
+ Web.Skell.Saferoute: slashPrependJoin :: RouteParts -> Route
Files
- skell.cabal +1/−1
- src/Web/Skell/Saferoute.hs +8/−2
skell.cabal view
@@ -2,7 +2,7 @@ -- see http://haskell.org/cabal/users-guide/ name: skell-version: 0.0.1.1+version: 0.0.2.0 synopsis: An overly complex Haskell web framework. description: Skell is a Haskell web framework. Much like an actual skeleton, Skell is both
src/Web/Skell/Saferoute.hs view
@@ -22,7 +22,9 @@ import Web.Skell.Responsible -- |The type for a route - just an alias for 'L.Text'-type Route = L.Text+type Route = S.Text+type RoutePart = S.Text+type RouteParts = [S.Text] -- |The type class for a resource. class Eq r => Resource r where@@ -48,9 +50,13 @@ lookupRoute :: Route -> Maybe r lookupRoute route = M.lookup route routeResourceMap + -- |Lookup a set of route parts+ lookupRouteParts :: RouteParts -> Maybe r+ lookupRouteParts = lookupRoute . slashPrependJoin+ getUrl :: Resource r => r -> H.AttributeValue getUrl = H.toValue . getRoute -- |Intercalate slashes, and add one to the front-slashPrependJoin :: [S.Text] -> S.Text+slashPrependJoin :: RouteParts -> Route slashPrependJoin parts = "/" <> S.intercalate "/" parts