| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Drasil.System.ProjectName
Description
Project names for software projects.
Synopsis
- data ProjectName
- mkProjectName :: UID -> NP -> String -> (String -> String) -> ProjectName
- mkCommonProjName :: UID -> NP -> String -> ProjectName
- class HasProjectName c where
- projectName :: Lens' c ProjectName
- projAbrv :: Lens' c String
- projRepoName :: Lens' c String
- projTitle :: Lens' c NP
- projTitleS :: ProjectName -> Sentence
- projAbrvS :: ProjectName -> Sentence
- introduceProjName :: ProjectName -> Sentence
Documentation
data ProjectName Source #
General software projects generally have at least 3 names: a human-readable title, a human-preferred abbreviation, and a preferred repository name (slug). For example, "Drasil: A Software Generation Framework", Drasil, and "drasil".
Instances
mkProjectName :: UID -> NP -> String -> (String -> String) -> ProjectName Source #
Construct a ProjectName from a UID, title (NP), abbreviation (String),
and repository name formatter ('String -> String'). Errors if the repository
name contains characters other than alphanumeric characters or .-
Abbreviation rules: 1. Non-empty, maximum of 64 chars. 2. Only printable characters.
Repo name rules:
1. Non-empty, maximum of 64 chars.
2. Lowercase alphanumeric or - only.
mkCommonProjName :: UID -> NP -> String -> ProjectName Source #
Construct a ProjectName using a common repository name formatting rule
(lowercase, naively replace non-alphanumeric characters with s).-
class HasProjectName c where Source #
Minimal complete definition
Methods
projectName :: Lens' c ProjectName Source #
projAbrv :: Lens' c String Source #
projRepoName :: Lens' c String Source #
Instances
| HasProjectName SystemMeta Source # | |
Defined in Drasil.System.Core Methods projectName :: Lens' SystemMeta ProjectName Source # projAbrv :: Lens' SystemMeta String Source # projRepoName :: Lens' SystemMeta String Source # projTitle :: Lens' SystemMeta NP Source # | |
| HasProjectName ProjectName Source # | |
Defined in Drasil.System.ProjectName Methods projectName :: Lens' ProjectName ProjectName Source # projAbrv :: Lens' ProjectName String Source # projRepoName :: Lens' ProjectName String Source # projTitle :: Lens' ProjectName NP Source # | |
projTitleS :: ProjectName -> Sentence Source #
Get the title of a ProjectName (as a Sentence).
projAbrvS :: ProjectName -> Sentence Source #
Get the human-readable abbreviation of a ProjectName (as a Sentence).
introduceProjName :: ProjectName -> Sentence Source #
Combine a ProjectName's title and abbreviation into an introductory
Sentence (e.g. "Title (Abbreviation)").