Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Inflector plugin for grails allows you to humanize, pluralize, singularize and upperCamelCase, woohoo!

branch: master
README.md

Inflector Plugin for Grails

This plugin provides a set of simple tags to simplify common text inflections. The most common case is the ability to pluralize and singularize words.

The plugin makes it easy to say 'Currently Logged In: 2 Users' vs. 'Currently Logged In: 1 User'.

It uses the Inflector class from the JBoss Modeshape library, which is in turn based on the Ruby Inflector.rb.

Tags

The tags contained are as follows:

Pluralize

Gives the plural of words

 <inf:pluralize>Chicken</inf:pluralize> -> Chickens

Pluralize also takes a count, so

 <inf:pluralize count="1">Chicken</inf:pluralize> -> Chicken
 <inf:pluralize count="2">Chicken</inf:pluralize> -> Chickens

Singularize

The opposite of pluralize.

 <inf:singularize>Chickens</inf:singularize> -> Chicken

Providing your own rules

You can provide your own singulars and plurals by adding them to the Inflector singleton.

For example, adding the following in your bootstrap file:

 Inflector.instance.addPluralize('(heroku)$', '$1Rocks');

would then enable you to call:

 <inf:pluralize>heroku</inf:pluralize> -> herokuRocks

similarly, you can also add singular matches:

Inflector.instance.addSingularize("CloudFoundry$", "$1Sucks");

For more examples, look at the Inflector.java file found under the src/java

Additional Tags:

The plugin also provides the following additional tags:

camelCase

Converts strings to lower Camel Case.

underscore

Makes an underscored form from the expression in the string

capitalize

Returns a copy of the input with the first character converted to uppercase and the remainder to lowercase.

humanize

Capitalizes the first word and turns underscores into spaces and strips trailing "_id" and any supplied removable tokens.

titleCase

Capitalizes all the words and replaces some characters in the string to create a nicer looking title. Underscores are changed to spaces, a trailing "_id" is removed

ordinalize

Turns a non-negative number into an ordinal string used to denote the position in an ordered sequence, such as 1st, 2nd,3rd, 4th.

Using additional tags

To use them, simply call the tag with the string to be transformed in the body.

For example,

<inf:ordinalize>2</inf:ordinalize> => 2nd
Something went wrong with that request. Please try again.