Name: underscore.inflections
Owner: looker
Description: Port of ActiveSupport::Inflector::Inflections for Underscore.js
Forked from: geetarista/underscore.inflections
Created: 2017-02-14 21:04:05.0
Updated: 2017-02-14 21:04:06.0
Pushed: 2017-02-14 21:18:16.0
Size: 125
Language: CoffeeScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Port of ActiveSupport::Inflector::Inflections for Underscore.js.
Works with browser or Node.js.
I created this underscore mixin after trying out every other inflection library out there. I've created this as a direct port of Rails' version as much as possible.
Note that right now, this only handles methods found in ActiveSupport::Inflector::Inflections since that's all I need right now. I may eventually split this out into separate inflector mixins that match all of ActiveSupport's.
Include both underscore.js and underscore.inflections on your page:
ipt src="underscore.js" type="text/javascript"></script>
ipt src="underscore.inflections.js" type="text/javascript"></script>
First, install the mixin through npm:
install underscore.inflections
Require underscore.js and underscore.inflections:
_ = require('underscore');
xin(require('underscore.inflections'));
Note: When using underscore in Node's REPL, be sure to choose a variable other than _
, as that is a special symbol used for showing the last return value.
Converts a word to its singular form.
Examples:
ngularize('posts'); //=> 'post'
ngularize('octopi'); //=> 'octopus'
ngularize('sheep'); //=> 'sheep'
ngularize('words'); //=> 'words'
Converts a word to its pluralized form.
Examples:
uralize('post'); //=> 'posts'
uralize('octopus'); //=> 'octopi'
uralize('sheep'); //=> 'sheep'
uralize('words'); //=> 'words'
Adds a rule for singularizing a word.
Example:
ngular(/^(ox)en/i, '\1');
Adds a rule for pluralizing a word.
Example:
ural(/^(ox)$/i, '\1en');
Adds a rule for an irregular word.
Example:
regular('person', 'people');
Adds a rule for an uncountable word or words.
Example:
countable(['fish', 'sheep']);
Makes the following inflection methods aware of acronyms: .camelize, .underscore, .humanize, .titleize See inflections_test for a full specifications of the subtleties
ronym("FBI");
melize("fbi_file"); //=> 'FBIFile'
derscore("FBIFile"); //=> 'fbi_file'
Example:
melize('make_me_tall'); //=> 'MakeMeTall'
When passed false as second parameter it does not capitalize the first word
Example:
melize('make_me_tall', false); //=> 'makeMeTall'
Separate camel cased strings with underscores
Example:
derscore('INeedSomeSpace'); //=> 'i_need_some_space'
Format underscored strings for human friendly consumption
Example:
manize('i_just_want_to_be_understood'); //=> 'I just want to be understood'
You can also add humanizing rules by calling `_.human
`
Example:
man(/_cnt$/,'_count');
manize('jargon_cnt'); //=> 'Jargon count'
Title case a underscored or camel cased string
Example:
tleize('three_blind_mice'); //=> 'Three Blind Mice'
tleize('JackAndJill'); //=> 'Jack And Jill'
MIT. See LICENSE
.