@@ -111,11 +111,13 @@ module Text.Inflections
111 , toUnderscore
111 , toUnderscore
112 , toDashed
112 , toDashed
113 , toCamelCased
113 , toCamelCased
114 , betterThrow )
115 , betterThrow )
117import Control.Monad.Catch (MonadThrow (..))
118import Control.Monad.Catch (MonadThrow (..))
118import Data.Text (Text)
119import Data.Text (Text)
120+import Data.Void (Void)
119import Text.Inflections.Camelize (camelize, camelizeCustom)
121import Text.Inflections.Camelize (camelize, camelizeCustom)
120import Text.Inflections.Dasherize (dasherize)
122import Text.Inflections.Dasherize (dasherize)
121import Text.Inflections.Data (Transliterations, defaultTransliterations)
123import Text.Inflections.Data (Transliterations, defaultTransliterations)
@@ -140,7 +142,7 @@ import Prelude hiding (Word)
141-- >>> toUnderscore "FooBarBazz"
143-- >>> toUnderscore "FooBarBazz"
142-- "foo_bar_bazz"
144-- "foo_bar_bazz"
143−toUnderscore :: Text -> Either (ParseError Char Dec) Text
145+toUnderscore :: Text -> Either (ParseErrorBundle Text Void) Text
144toUnderscore = fmap underscore . parseCamelCase []
146toUnderscore = fmap underscore . parseCamelCase []
146-- | Transforms CamelCasedString to snake-cased-string-with-dashes.
148-- | Transforms CamelCasedString to snake-cased-string-with-dashes.
@@ -149,26 +151,45 @@ toUnderscore = fmap underscore . parseCamelCase []
150-- >>> toDashed "FooBarBazz"
152-- >>> toDashed "FooBarBazz"
151-- "foo-bar-bazz"
153-- "foo-bar-bazz"
152−toDashed :: Text -> Either (ParseError Char Dec) Text
154+toDashed :: Text -> Either (ParseErrorBundle Text Void) Text
153toDashed = fmap dasherize . parseCamelCase []
155toDashed = fmap dasherize . parseCamelCase []
155-- | Transforms underscored_text to CamelCasedText. If first argument is
157-- | Transforms underscored_text to CamelCasedText. If first argument is
156−-- 'True' then FirstCharacter in result string will be in upper case. If
158+-- 'True' then the first character in the result string will be in upper case. If
157−-- 'False' then firstCharacter will be in lower case.
159+-- 'False' then the first character will be in lower case.
159−-- > toCamelCased t = fmap (camelizeCustom t) . parseSnakeCase []
161+-- > toCamelCased c = fmap (camelizeCustom c) . parseSnakeCase []
161-- >>> toCamelCased True "foo_bar_bazz"
163-- >>> toCamelCased True "foo_bar_bazz"
162-- "FooBarBazz"
164-- "FooBarBazz"
163-- >>> toCamelCased False "foo_bar_bazz"
165-- >>> toCamelCased False "foo_bar_bazz"
164-- "fooBarBazz"
166-- "fooBarBazz"
165toCamelCased
167toCamelCased
166− :: Bool -- ^ Capitalize the first character
168+ :: Bool -- ^ Capitalize the first character
167− -> Text -- ^ Input
169+ -> Text -- ^ Input
168− -> Either (ParseError Char Dec) Text -- ^ Ouput
170+ -> Either (ParseErrorBundle Text Void) Text -- ^ Output
169−toCamelCased t = fmap (camelizeCustom t) . parseSnakeCase []
171+toCamelCased c = fmap (camelizeCustom c) . parseSnakeCase []
173+-- | Transforms underscored_text to space-separated human-readable text.
174+-- If first argument is 'True' then the first character in the result
175+-- string will be in upper case. If 'False' then the first character will be
178+-- > toHumanized c = fmap (humanizeCustom c) . parseSnakeCase []
180+-- >>> toHumanized True "foo_bar_bazz"
182+-- >>> toHumanized False "foo_bar_bazz"
187+ :: Bool -- ^ Capitalize the first character
189+ -> Either (ParseErrorBundle Text Void) Text -- ^ Output
190+toHumanized c = fmap (humanizeCustom c) . parseSnakeCase []
171−-- | Lift something of type @'Either' ('ParseError' 'Char' 'Dec') a@ to
192+-- | Lift something of type @'Either' ('ParseError' 'Char' 'Void') a@ to
172-- an instance of 'MonadThrow'. Useful when you want to shortcut on parsing
193-- an instance of 'MonadThrow'. Useful when you want to shortcut on parsing
173-- failures and you're in an instance of 'MonadThrow'.
194-- failures and you're in an instance of 'MonadThrow'.
@@ -176,6 +197,6 @@ toCamelCased t = fmap (camelizeCustom t) . parseSnakeCase []
177-- /since 0.3.0.0/
198-- /since 0.3.0.0/
179−betterThrow :: MonadThrow m => Either (ParseError Char Dec) a -> m a
200+betterThrow :: MonadThrow m => Either (ParseErrorBundle Text Void) a -> m a
180betterThrow (Left err) = throwM (InflectionParsingFailed err)
201betterThrow (Left err) = throwM (InflectionParsingFailed err)
181betterThrow (Right x) = return x
202betterThrow (Right x) = return x