cabal-lenses 0.2 → 0.3
raw patch · 3 files changed
+53/−7 lines, 3 filesdep ~lensPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: lens
API changes (from Hackage documentation)
+ CabalLenses.Traversals.Dependency: allDependency :: Traversal' GenericPackageDescription Dependency
+ CabalLenses.Traversals.Dependency: allDependencyIf :: CondVars -> Traversal' GenericPackageDescription Dependency
+ CabalLenses.Version: lowerBound :: Lens' VersionInterval LowerBound
+ CabalLenses.Version: noLowerBound :: LowerBound
+ CabalLenses.Version: rangeToIntervals :: Iso' VersionRange [VersionInterval]
+ CabalLenses.Version: upperBound :: Lens' VersionInterval UpperBound
- CabalLenses.PackageDescription: condTreeComponentsL :: Lens (CondTree v_a7PB c_a7PC a_a7PD) (CondTree v_ac6w c_a7PC a_a7PD) [(Condition v_a7PB, CondTree v_a7PB c_a7PC a_a7PD, Maybe (CondTree v_a7PB c_a7PC a_a7PD))] [(Condition v_ac6w, CondTree v_ac6w c_a7PC a_a7PD, Maybe (CondTree v_ac6w c_a7PC a_a7PD))]
+ CabalLenses.PackageDescription: condTreeComponentsL :: Lens (CondTree v_a5ZB c_a5ZC a_a5ZD) (CondTree v_a8Br c_a5ZC a_a5ZD) [(Condition v_a5ZB, CondTree v_a5ZB c_a5ZC a_a5ZD, Maybe (CondTree v_a5ZB c_a5ZC a_a5ZD))] [(Condition v_a8Br, CondTree v_a8Br c_a5ZC a_a5ZD, Maybe (CondTree v_a8Br c_a5ZC a_a5ZD))]
- CabalLenses.PackageDescription: condTreeConstraintsL :: Lens' (CondTree v_a7PB c_a7PC a_a7PD) c_a7PC
+ CabalLenses.PackageDescription: condTreeConstraintsL :: Lens' (CondTree v_a5ZB c_a5ZC a_a5ZD) c_a5ZC
- CabalLenses.PackageDescription: condTreeDataL :: Lens' (CondTree v_a7PB c_a7PC a_a7PD) a_a7PD
+ CabalLenses.PackageDescription: condTreeDataL :: Lens' (CondTree v_a5ZB c_a5ZC a_a5ZD) a_a5ZD
Files
- cabal-lenses.cabal +2/−2
- lib/CabalLenses/Traversals/Dependency.hs +28/−3
- lib/CabalLenses/Version.hs +23/−2
cabal-lenses.cabal view
@@ -1,5 +1,5 @@ name: cabal-lenses-version: 0.2+version: 0.3 cabal-version: >=1.9.2 build-type: Simple license: BSD3@@ -21,7 +21,7 @@ library build-depends: base >=3 && <5,- lens >=4.0.1 && <4.3,+ lens >=4.0.1 && <4.4, unordered-containers >=0.2.3.3 && <0.3, Cabal >=1.16.0 && <1.21 exposed-modules:
lib/CabalLenses/Traversals/Dependency.hs view
@@ -1,7 +1,9 @@ {-# LANGUAGE Rank2Types #-} module CabalLenses.Traversals.Dependency- ( dependency+ ( allDependency+ , allDependencyIf+ , dependency , dependencyIf ) where @@ -10,10 +12,33 @@ import CabalLenses.CondVars (CondVars) import CabalLenses.PackageDescription import Control.Lens-import Distribution.PackageDescription (GenericPackageDescription)+import Control.Applicative ((<$>), (<*>), pure)+import Distribution.PackageDescription (GenericPackageDescription(GenericPackageDescription)) import Distribution.Package (Dependency) +-- | A traversal for all 'Dependency' of all 'Section'.+allDependency :: Traversal' GenericPackageDescription Dependency+allDependency f (GenericPackageDescription descrp flags lib exes tests benchs) =+ GenericPackageDescription <$> pure descrp+ <*> pure flags+ <*> (_Just . traverseDependency) f lib+ <*> (traverse . _2 . traverseDependency) f exes+ <*> (traverse . _2 . traverseDependency) f tests+ <*> (traverse . _2 . traverseDependency) f benchs+++-- | A traversal for all 'Dependency' of all 'Section' that match 'CondVars'.+allDependencyIf :: CondVars -> Traversal' GenericPackageDescription Dependency+allDependencyIf condVars f (GenericPackageDescription descrp flags lib exes tests benchs) =+ GenericPackageDescription <$> pure descrp+ <*> pure flags+ <*> (_Just . traverseDependencyIf condVars) f lib+ <*> (traverse . _2 . traverseDependencyIf condVars) f exes+ <*> (traverse . _2 . traverseDependencyIf condVars) f tests+ <*> (traverse . _2 . traverseDependencyIf condVars) f benchs++ -- | A traversal for all 'Dependency' of 'Section'. dependency :: Section -> Traversal' GenericPackageDescription Dependency dependency Library = condLibraryL . _Just . traverseDependency@@ -30,4 +55,4 @@ dependencyIf condVars (Benchmark name) = condBenchmarksL . traverse . having name . _2 . traverseDependencyIf condVars -having name = filtered ((== name) . fst) +having name = filtered ((== name) . fst)
lib/CabalLenses/Version.hs view
@@ -6,10 +6,31 @@ module CabalLenses.Version where -import Distribution.Version (Version(..))-import Control.Lens (makeLensesFor)+import Distribution.Version+import Control.Lens+import Data.Maybe (fromMaybe)+import Control.Applicative ((<$>)) makeLensesFor [ ("versionBranch", "versionBranchL") , ("versionTags" , "versionTagsL") ] ''Version+++rangeToIntervals :: Iso' VersionRange [VersionInterval]+rangeToIntervals = iso asVersionIntervals toVersionRange+ where+ toVersionRange intervals =+ fromMaybe anyVersion (fromVersionIntervals <$> mkVersionIntervals intervals)+++lowerBound :: Lens' VersionInterval LowerBound+lowerBound = _1+++upperBound :: Lens' VersionInterval UpperBound+upperBound = _2+++noLowerBound :: LowerBound+noLowerBound = LowerBound (Version [0] []) InclusiveBound