fleck
is a functional styled library for string inflection that doesn't pollute String.prototype
.
All the inflections are stored inside fleck
. They are:
// Capitals
fleck.capitalize('acme') == 'Acme'
// CamelCase and camelCase
fleck.camelize('border-radius') == 'borderRadius'
fleck.camelize('border-radius', true) == 'BorderRadius' // alias for upperCamelize
fleck.upperCamelize('we-the-people') == 'WeThePeople'
// Changes underscores and spaces into dashes
fleck.dasherize('we_the_people') == 'we-the-people'
// Underscore
// Converts camelCase, CamelCase, dash-es, and Name::Spaced to underscores
fleck.underscore("camelCase") == 'camel_case'
fleck.underscore("CamelCase") == 'camel_case'
fleck.underscore("dash-es") == 'dash_es'
fleck.underscore("Name::Spaced") == 'name_spaced'
// Plurals and Singular, even strange ones
fleck.pluralize('dog') == 'dogs'
fleck.pluralize('person') == 'people'
fleck.pluralize('sheep') == 'sheep'
fleck.singularize('dogs') == 'dog'
fleck.singularize('people') == 'person'
// Whitespace stripping
fleck.strip(' hello! ') == 'hello!'
// Ordinals
fleck.ordinalize(4) == "4th"
fleck.ordinalize("13") == "13th"
fleck.ordinalize("122") == "122nd"
fleck
doesn't contain any unpredictable javascript object orientation. Feel free to combine
with other functional libraries at will; no new anonymous functions, no silly bind
s:
// underscore.js
_.each(['dog','cat','mouse'], fleck.pluralize) == ["dogs", "cats", "mice"]
// jQuery.js
$.ajax({
url:'/data/sync_from_server/new/uncountablewords',
success: fleck.uncountable
})
Inflections can be chained using fleck.inflect
fleck.inflect(' posts', 'strip', 'singularize', 'capitalize') == 'Post'