packages feed

persistent-documentation 0.1.0.5 → 0.1.0.6

raw patch · 4 files changed

+30/−3 lines, 4 files

Files

CHANGELOG.md view
@@ -1,5 +1,10 @@ # Revision history for persistent-documentation +## 0.1.0.6++* [#16](https://github.com/parsonsmatt/persistent-documentation/pull/16)+    * Render `MigrationOnly` fields for `persistent >= 2.15.1.0`+ ## 0.1.0.5  * [#12](https://github.com/parsonsmatt/persistent-documentation/pull/12)
persistent-documentation.cabal view
@@ -1,7 +1,7 @@ cabal-version:       >=1.10  name:                persistent-documentation-version:             0.1.0.5+version:             0.1.0.6 synopsis:            Documentation DSL for persistent entities description:         A convenient DSL that allows you to attach documentation to persistent database entities -- bug-reports:
src/Database/Persist/Documentation.hs view
@@ -225,7 +225,7 @@        }     -> Renderer rendered --- | Given a 'Renderer' for a list of entity defintiions, render it.+-- | Given a 'Renderer' for a list of entity definitions, render it. -- -- @since 0.1.0.0 render :: Renderer rendered -> [EntityDef] -> rendered@@ -234,7 +234,12 @@   where     f ent = renderEntity ent entityDocs renderedFields       where-        fields = toList $ keyAndEntityFields ent+        fields =+#if MIN_VERSION_persistent(2,15,1)+          toList $ keyAndEntityFieldsDatabase ent+#else+          toList $ keyAndEntityFields ent+#endif         entityDocs = entityComments ent         renderedFields =           renderFields (map (\f -> renderField f (fieldComments f)) fields)
test/DocumentationSpec.hs view
@@ -41,6 +41,8 @@   User     firstName Text.Text     active Bool+    -- | You can only write inline docs for MigrationOnly fields+    sqlOnly Text.Text MigrationOnly     deriving Show Eq Read Ord    Dog@@ -139,3 +141,18 @@       Set.fromList (mapMaybe fieldComments (alignFields fields strMap))         `shouldBe`           Set.fromList ["Hello, world", "If the user is active", "user identity"]++  describe "render" $ do+    let simpleFieldRenderer = Renderer+          { renderField = \fd _ -> unFieldNameHS $ fieldHaskell fd+          , renderFields = Text.unwords+          , renderEntity = \ed _ fs -> unEntityNameHS (entityHaskell ed) <> ": " <> fs+          , renderEntities = Text.unlines+          }+#if MIN_VERSION_persistent(2,15,1)+    it "includes MigrationOnly fields" $ do+      let userDef = entityDef (Nothing :: Maybe User)+      let output = render simpleFieldRenderer [userDef]+      output `shouldBe` "User: Id firstName active sqlOnly\n"+#endif+    pure ()