functional-style string inflections
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
Gruntfile.js
LICENSE
README.md
bower.json
package.json
yuidoc.json

README.md

fleck is a functional styled library for string inflection that doesn't pollute String.prototype.

Basic Use

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"

Functional Programing

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
})

Chaining

Inflections can be chained using fleck.inflect

fleck.inflect('     posts', 'strip', 'singularize', 'capitalize') == 'Post'