public class Inflector extends Object
Modifier and Type | Class and Description |
---|---|
protected class |
Inflector.Rule |
Constructor and Description |
---|
Inflector() |
Modifier and Type | Method and Description |
---|---|
void |
addIrregular(String singular,
String plural) |
void |
addPluralize(String rule,
String replacement) |
void |
addSingularize(String rule,
String replacement) |
void |
addUncountable(String... words) |
String |
capitalize(String words)
Returns a copy of the input with the first character converted to uppercase and the remainder to lowercase.
|
static Inflector |
getInstance() |
String |
humanize(String lowerCaseAndUnderscoredWords,
String... removableTokens)
Capitalizes the first word and turns underscores into spaces and strips trailing "_id" and any supplied removable tokens.
|
protected void |
initialize() |
boolean |
isUncountable(String word)
Determine whether the supplied word is considered uncountable by the
pluralize and
singularize methods. |
MultipleInflection |
of(int count) |
Inflection |
of(String word) |
String |
pluralize(Object word)
Returns the plural form of the word in the string.
|
String |
pluralize(Object word,
int count) |
protected static String |
replaceAllWithUppercase(String input,
String regex,
int groupNumberToUppercase)
Utility method to replace all occurrences given by the specific backreference with its uppercased form, and remove all
other backreferences.
|
String |
singularize(Object word)
Returns the singular form of the word in the string.
|
String |
titleCase(String words,
String... removableTokens)
Capitalizes all the words and replaces some characters in the string to create a nicer looking title.
|
String |
underscore(String camelCaseWord,
char... delimiterChars)
Makes an underscored form from the expression in the string (the reverse of the
camelCase method. |
protected static final Inflector INSTANCE
public static Inflector getInstance()
public Inflection of(String word)
public MultipleInflection of(int count)
public String pluralize(Object word)
inflector.pluralize("post") #=> "posts" inflector.pluralize("octopus") #=> "octopi" inflector.pluralize("sheep") #=> "sheep" inflector.pluralize("words") #=> "words" inflector.pluralize("the blue mailman") #=> "the blue mailmen" inflector.pluralize("CamelOctopus") #=> "CamelOctopi"Note that if the
Object.toString()
is called on the supplied object, so this method works for non-strings, too.word
- the word that is to be pluralized.singularize(Object)
public String singularize(Object word)
inflector.singularize("posts") #=> "post" inflector.singularize("octopi") #=> "octopus" inflector.singularize("sheep") #=> "sheep" inflector.singularize("words") #=> "word" inflector.singularize("the blue mailmen") #=> "the blue mailman" inflector.singularize("CamelOctopi") #=> "CamelOctopus"Note that if the
Object.toString()
is called on the supplied object, so this method works for non-strings, too.word
- the word that is to be pluralized.pluralize(Object)
public String capitalize(String words)
words
- the word to be capitalizedpublic String humanize(String lowerCaseAndUnderscoredWords, String... removableTokens)
titleCase(String, String[])
, this is meant for creating pretty output.
Examples:
inflector.humanize("employee_salary") #=> "Employee salary" inflector.humanize("author_id") #=> "Author"
lowerCaseAndUnderscoredWords
- the input to be humanizedremovableTokens
- optional array of tokens that are to be removedtitleCase(String, String[])
public String underscore(String camelCaseWord, char... delimiterChars)
camelCase
method. Also changes any characters that match the supplied delimiters into underscore.
Examples:
inflector.underscore("activeRecord") #=> "active_record" inflector.underscore("ActiveRecord") #=> "active_record" inflector.underscore("firstName") #=> "first_name" inflector.underscore("FirstName") #=> "first_name" inflector.underscore("name") #=> "name" inflector.underscore("The.firstName") #=> "the_first_name"
camelCaseWord
- the camel-cased word that is to be converted;delimiterChars
- optional characters that are used to delimit word boundaries (beyond capitalization)public String titleCase(String words, String... removableTokens)
humanize(String, String[])
, this is meant for creating pretty output.
Examples:
inflector.titleCase("man from the boondocks") #=> "Man From The Boondocks" inflector.titleCase("x-men: the last stand") #=> "X Men: The Last Stand"
words
- the input to be turned into title caseremovableTokens
- optional array of tokens that are to be removedpublic boolean isUncountable(String word)
pluralize
and
singularize
methods.word
- the wordpublic void addUncountable(String... words)
protected static String replaceAllWithUppercase(String input, String regex, int groupNumberToUppercase)
regular expression processing
does not use the preprocessing directives \l
,
\u
, \L
, and \U
. If so, such directives could be used in the replacement string
to uppercase or lowercase the backreferences. For example, \L1
would lowercase the first backreference, and
\u3
would uppercase the 3rd backreference.protected void initialize()
Copyright © 2011–2014 Wakaleo Consulting. All rights reserved.