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 binds:
// 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'