Skip to content

Commit

Permalink
refactor(lib): Restructure modules
Browse files Browse the repository at this point in the history
  • Loading branch information
sgillespie committed Mar 17, 2024
1 parent 1f78f8b commit 0a3ae16
Show file tree
Hide file tree
Showing 15 changed files with 82 additions and 31 deletions.
7 changes: 2 additions & 5 deletions app/Main.hs
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
module Main (main) where

import Data.Gibberish.Format qualified as Fmt
import Data.Gibberish.GenPass (genPassphrase, genPassword)
import Data.Gibberish.MonadPass (Pass (), usingPass)
import Data.Gibberish.Trigraph (Language (..), TrigraphConfig (..), loadTrigraph)
import Data.Gibberish.Types (GenPassphraseOpts (..), GenPasswordOpts (..))
import Data.Gibberish
import Data.Gibberish.Formatting qualified as Fmt

import Control.Monad.IO.Class (MonadIO (..))
import Data.Text (Text ())
Expand Down
2 changes: 1 addition & 1 deletion app/gen-trigraph.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module Main (main) where

import Data.Gibberish.Trigraph (genTrigraph)
import Data.Gibberish (genTrigraph)

import Data.Aeson.Encode.Pretty (encodePretty)
import Data.ByteString.Lazy (ByteString ())
Expand Down
16 changes: 9 additions & 7 deletions gibberish.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,13 @@ common common-test
library
import: common-options
exposed-modules:
Data.Gibberish,
Data.Gibberish.Errors,
Data.Gibberish.Format,
Data.Gibberish.GenPass,
Data.Gibberish.MonadPass,
Data.Gibberish.Trigraph,
Data.Gibberish.Formatting,
Data.Gibberish.Gen,
Data.Gibberish.Gen.Pass,
Data.Gibberish.Gen.Trigraph,
Data.Gibberish.Monad.Pass,
Data.Gibberish.Types,
Data.Gibberish.Utils
other-modules:
Expand Down Expand Up @@ -145,9 +147,9 @@ test-suite spec
build-tool-depends:
hspec-discover:hspec-discover
other-modules:
Data.Gibberish.FormatSpec
Data.Gibberish.GenPassSpec
Data.Gibberish.TrigraphSpec
Data.Gibberish.FormattingSpec
Data.Gibberish.Gen.PassSpec
Data.Gibberish.Gen.TrigraphSpec
Data.Gibberish.TypesSpec
Data.Gibberish.UtilsSpec
Paths_gibberish
Expand Down
46 changes: 46 additions & 0 deletions src/Data/Gibberish.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
module Data.Gibberish
( -- * Core types
GenPasswordOpts (..),
GenPassphraseOpts (..),
Unigram (..),
Digram (..),
Trigram (..),
Frequency (..),
Frequencies (..),
Trigraph (..),
Word (..),

-- * Password/phrase generation
genPassword,
genPassphrase,
genPassphrase',

-- * Trigraph generation
Language (..),
TrigraphConfig (..),
genTrigraph,
loadTrigraph,

-- * Password/phrase generation monad
Pass (),
PassT (..),
MonadRandom (..),
runPass,
evalPass,
usingPass,
runPassT,
evalPassT,
usingPassT,

-- * Error handling
GibberishErr (..),
isTrigraphNotFound,
isImpossibleError,
) where

import Data.Gibberish.Errors
import Data.Gibberish.Gen
import Data.Gibberish.Monad.Pass
import Data.Gibberish.Types

import Prelude hiding (Word ())
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module Data.Gibberish.Format
module Data.Gibberish.Formatting
( FormatOpts (..),
MaxLen (..),
MaxHeight (..),
Expand Down
7 changes: 7 additions & 0 deletions src/Data/Gibberish/Gen.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module Data.Gibberish.Gen
( module Data.Gibberish.Gen.Pass,
module Data.Gibberish.Gen.Trigraph,
) where

import Data.Gibberish.Gen.Pass
import Data.Gibberish.Gen.Trigraph
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE ScopedTypeVariables #-}

module Data.Gibberish.GenPass
module Data.Gibberish.Gen.Pass
( genPassword,
genPassphrase,
genPassphrase',
) where

import Data.Gibberish.MonadPass (MonadRandom ())
import Data.Gibberish.Monad.Pass (MonadRandom ())
import Data.Gibberish.Types
import Data.Gibberish.Utils

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
{-# LANGUAGE OverloadedLists #-}

module Data.Gibberish.Trigraph
module Data.Gibberish.Gen.Trigraph
( Language (..),
TrigraphConfig (..),
genTrigraph,
loadTrigraph,
) where

import Data.Gibberish.Errors (GibberishErr (..))
import Data.Gibberish.Utils (toQwertyKey)
import Paths_gibberish (getDataFileName)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module Data.Gibberish.MonadPass
module Data.Gibberish.Monad.Pass
( Pass (),
PassT (..),
MonadRandom (..),
Expand Down
3 changes: 0 additions & 3 deletions src/Data/Gibberish/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,8 @@ module Data.Gibberish.Types
Frequencies (..),
Trigraph (..),
Word (..),
module Data.Gibberish.Errors,
) where

import Data.Gibberish.Errors

import Control.DeepSeq (NFData)
import Data.Aeson (FromJSON (..), FromJSONKey (..), ToJSON (..), ToJSONKey (..))
import Data.Aeson qualified as Aeson
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module Data.Gibberish.FormatSpec (spec) where
module Data.Gibberish.FormattingSpec (spec) where

import Data.Gibberish.Format
import Data.Gibberish.Formatting
import Data.Gibberish.Types

import Control.Monad (forM_)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
module Data.Gibberish.GenPassSpec (spec) where
module Data.Gibberish.Gen.PassSpec (spec) where

import Data.Gibberish.GenPass (genPassphrase, genPassphrase', genPassword)
import Data.Gibberish.MonadPass (usingPass, usingPassT)
import Data.Gibberish.Trigraph (Language (..), loadTrigraph)
import Data.Gibberish.Gen.Pass (genPassphrase, genPassphrase', genPassword)
import Data.Gibberish.Gen.Trigraph (Language (..), loadTrigraph)
import Data.Gibberish.Monad.Pass (usingPass, usingPassT)
import Data.Gibberish.Types
import Data.Gibberish.Utils (numeralConversions, symbolConversions)
import Test.Gibberish.Gen qualified as Gen
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
{-# LANGUAGE OverloadedLists #-}

module Data.Gibberish.TrigraphSpec (spec) where
module Data.Gibberish.Gen.TrigraphSpec (spec) where

import Data.Gibberish.Trigraph
import Data.Gibberish.Errors (isTrigraphNotFound)
import Data.Gibberish.Gen.Trigraph
import Data.Gibberish.Types
import Data.Gibberish.Utils (qwertyKeys)
import Paths_gibberish (getDataFileName)
Expand Down
2 changes: 1 addition & 1 deletion test/Data/Gibberish/UtilsSpec.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module Data.Gibberish.UtilsSpec (spec) where

import Data.Gibberish.MonadPass (usingPass)
import Data.Gibberish.Monad.Pass (usingPass)
import Data.Gibberish.Utils
import Test.Gibberish.Gen qualified as Gen

Expand Down
2 changes: 1 addition & 1 deletion test/Golden.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module Main (main) where

import Data.Gibberish.Trigraph (genTrigraph)
import Data.Gibberish (genTrigraph)

import Data.Aeson.Encode.Pretty (encodePretty)
import Data.ByteString.Lazy (ByteString ())
Expand Down

0 comments on commit 0a3ae16

Please sign in to comment.