route-planning 0.0.2 → 0.0.3
raw patch · 7 files changed
+71/−17 lines, 7 files
Files
- route-planning.cabal +1/−1
- src/Data/Geo/Route/Author.hs +6/−0
- src/Data/Geo/Route/Copyright.hs +21/−6
- src/Data/Geo/Route/Email.hs +19/−3
- src/Data/Geo/Route/Link.hs +3/−3
- src/Data/Geo/Route/Plan.hs +21/−3
- src/Data/Geo/Route/Track.hs +0/−1
route-planning.cabal view
@@ -1,5 +1,5 @@ name: route-planning-version: 0.0.2+version: 0.0.3 license: BSD3 license-File: etc/LICENCE author: Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
src/Data/Geo/Route/Author.hs view
@@ -4,6 +4,8 @@ , mkAuthor' , authorEmail , authorLink+, HasAuthor(..)+, HasMaybeAuthor(..) ) where import Prelude(Show)@@ -75,3 +77,7 @@ instance HasAuthor Author where author = id++class HasMaybeAuthor t where+ mauthor ::+ Lens' t (Maybe Author)
src/Data/Geo/Route/Copyright.hs view
@@ -1,16 +1,19 @@ module Data.Geo.Route.Copyright( Copyright-, copyright-, copyright'+, mkCopyright+, mkCopyright' , copyrightAuthor , copyrightYear , copyrightLicense+, HasCopyright(..)+, HasMaybeCopyright(..) ) where import Prelude(Show) import Control.Lens(Lens', lens) import Data.Eq(Eq) import Data.Foldable(Foldable(foldMap))+import Data.Function(id) import Data.Geo.Route.Gpx(Gpx(gpx)) import Data.List((++)) import Data.Maybe(Maybe(Just, Nothing))@@ -25,18 +28,18 @@ (Maybe String) -- license deriving (Eq, Ord, Show) -copyright ::+mkCopyright :: String -> Copyright-copyright a =+mkCopyright a = Copyright a Nothing Nothing -copyright' ::+mkCopyright' :: String -> String -> String -> Copyright-copyright' a y l =+mkCopyright' a y l = Copyright a (Just y) (Just l) copyrightAuthor ::@@ -57,3 +60,15 @@ instance Gpx Copyright where gpx (Copyright a y l) = printf "<copyright author=\"%s\">%s%s</copyright>" a (foldMap (\y' -> "<year>" ++ y' ++ "</year>") y) (foldMap (\l' -> "<license>" ++ l' ++ "</license>") l)++class HasCopyright t where+ copyright ::+ Lens' t Copyright++instance HasCopyright Copyright where+ copyright =+ id++class HasMaybeCopyright t where+ mcopyright ::+ Lens' t (Maybe Copyright)
src/Data/Geo/Route/Email.hs view
@@ -1,13 +1,17 @@ module Data.Geo.Route.Email( Email-, email+, mkEmail , emailId , emailDomain+, HasEmail(..)+, HasMaybeEmail(..) ) where import Prelude(Show) import Data.Geo.Route.Gpx(Gpx(gpx)) import Control.Lens(Lens', lens)+import Data.Function(id)+import Data.Maybe(Maybe) import Data.String(String) import Data.Eq(Eq) import Data.Ord(Ord)@@ -19,11 +23,11 @@ String -- domain deriving (Eq, Ord, Show) -email ::+mkEmail :: String -> String -> Email-email =+mkEmail = Email emailId ::@@ -39,3 +43,15 @@ instance Gpx Email where gpx (Email i d) = printf "<email id=\"%s\" domain=\"%s\"/>" i d++class HasEmail t where+ email ::+ Lens' t Email++instance HasEmail Email where+ email =+ id++class HasMaybeEmail t where+ memail ::+ Lens' t (Maybe Email)
src/Data/Geo/Route/Link.hs view
@@ -1,6 +1,6 @@ module Data.Geo.Route.Link( Link-, link+, mkLink , linkHref , linkText , linkType@@ -21,12 +21,12 @@ String -- type deriving (Eq, Ord, Show) -link ::+mkLink :: String -> String -> String -> Link-link =+mkLink = Link instance Gpx Link where
src/Data/Geo/Route/Plan.hs view
@@ -10,16 +10,18 @@ import Data.Bool((&&)) import Data.Eq(Eq) import Data.Foldable(Foldable(foldMap))+import Data.Function((.)) import Data.Ord(Ord) import Data.Maybe(Maybe(Nothing, Just), isNothing) import Data.String(String)-import Data.Geo.Route.Author(Author)-import Data.Geo.Route.Copyright(Copyright)+import Data.Geo.Route.Author(Author, HasMaybeAuthor(mauthor))+import Data.Geo.Route.Copyright(Copyright, HasMaybeCopyright(mcopyright)) import Data.Geo.Route.Description(Description, HasMaybeDescription(mdescription)) import Data.Geo.Route.Gpx(Gpx(gpx)) import Data.Geo.Route.Name(Name, HasMaybeName(mname)) import Data.Geo.Route.Osrm(Osrm(allCoordinates))-import Data.Geo.Route.Track(Track, trackPoints)+import Data.Geo.Route.Track(Track, HasTrack(track), trackPoints)+import Data.Geo.Route.TrackHeader(HasTrackHeader(trackHeader)) import Data.Geo.Route.Waypoint(gpxWaypoint) import Text.Printf(printf) @@ -89,3 +91,19 @@ instance HasMaybeDescription Plan where mdescription = lens (\(Plan _ d _ _ _) -> d) (\(Plan n _ a c t) d -> Plan n d a c t)++instance HasMaybeAuthor Plan where+ mauthor =+ lens (\(Plan _ _ a _ _) -> a) (\(Plan n d _ c t) a -> Plan n d a c t)++instance HasMaybeCopyright Plan where+ mcopyright =+ lens (\(Plan _ _ _ c _) -> c) (\(Plan n d a _ t) c -> Plan n d a c t)++instance HasTrack Plan where+ track =+ lens (\(Plan _ _ _ _ t) -> t) (\(Plan n d a c _) t -> Plan n d a c t)++instance HasTrackHeader Plan where+ trackHeader =+ track . trackHeader
src/Data/Geo/Route/Track.hs view
@@ -116,7 +116,6 @@ trackPoints (Track _ t) = concat t - class HasTrack t where track :: Lens' t Track