String Inflections for Haskell
This library is a partial port of the
from Ruby on Rails. It currently implements methods such as
dasherize. Please see the
haddock documentation for a complete list of the functions implemented by this
Unlike the ActiveSupport (Rails) and Ember implementations of inflections, this
library uses a parser to verify the input to functions like
camelize. This is
done to ensure that the output strings adhere to the syntax that they are
supposed to generate. You can read more about the philosophy behind this library
The following examples demonstrate usage of the
λ: parameterize "Hola. ¿Cómo estás?" "hola-como-estas" λ: transliterate "Hola. ¿Cómo estás?" "Hola. ?Como estas?" λ: import Control.Monad (liftM) λ: liftM camelize $ parseSnakeCase "hey_there" "HeyThere"
Part of parameterizing strings is approximating all characters in the input
encoding to ASCII characters. This library copies the character approximation
table from the Ruby i18n library. This data structure is provided as
defaultCharacterTransliterations. You can provide your own transliteration map
by passing a Map structure (from Data.Map) to the
If you want to specify a custom default replacement or approximation table for
transliterate function, you should instead call the
function which accepts a String for replacements and a Map for substitution.
I'd like this library to implement other functions found in the Rails inflections library. If you need one of those functions, please submit a pull request!
For more information, please see the the Haddock docs for this module.
Justin Leitgeb email@example.com
You may submit pull requests to this repository on GitHub. Tests are appreciated with your contribution.
MIT - see the LICENSE file.