Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    underscore.inflectionspublic

    underscore.inflections Build Status

    Port of ActiveSupport::Inflector::Inflections for Underscore.js.

    Works with browser or Node.js.

    Introduction

    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.

    Setup

    Browser

    Include both underscore.js and underscore.inflections on your page:

    <script src="underscore.js" type="text/javascript"></script>
    <script src="underscore.inflections.js" type="text/javascript"></script>

    Node.js

    First, install the mixin through npm:

    npm install underscore.inflections

    Require underscore.js and underscore.inflections:

    var _ = require('underscore');
    _.mixin(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.

    Usage

    Singularize

    Converts a word to its singular form.

    Examples:

    _.singularize('posts');    //=> 'post' 
    _.singularize('octopi');   //=> 'octopus' 
    _.singularize('sheep');    //=> 'sheep' 
    _.singularize('words');    //=> 'words' 

    Pluralize

    Converts a word to its pluralized form.

    Examples:

    _.pluralize('post');      //=> 'posts' 
    _.pluralize('octopus');   //=> 'octopi' 
    _.pluralize('sheep');     //=> 'sheep' 
    _.pluralize('words');     //=> 'words' 

    Customizing

    Singular

    Adds a rule for singularizing a word.

    Example:

    _.singular(/^(ox)en/i, '\1');

    Plural

    Adds a rule for pluralizing a word.

    Example:

    _.plural(/^(ox)$/i, '\1en');

    Irregular

    Adds a rule for an irregular word.

    Example:

    _.irregular('person', 'people');

    Uncountable

    Adds a rule for an uncountable word or words.

    Example:

    _.uncountable(['fish', 'sheep']);

    Acronym

    Makes the following inflection methods aware of acronyms: _.camelize, _.underscore, _.humanize, _.titleize See inflections_test for a full specifications of the subtleties

    _.acronym("FBI");
    _.camelize("fbi_file"); //=> 'FBIFile' 
    _.underscore("FBIFile"); //=> 'fbi_file' 

    Camelize

    Example:

    _.camelize('make_me_tall');  //=> 'MakeMeTall' 

    When passed false as second parameter it does not capitalize the first word

    Example:

    _.camelize('make_me_tall', false);  //=> 'makeMeTall' 

    Underscore

    Separate camel cased strings with underscores

    Example:

    _.underscore('INeedSomeSpace');  //=> 'i_need_some_space' 

    Humanize

    Format underscored strings for human friendly consumption

    Example:

    _.humanize('i_just_want_to_be_understood');  //=> 'I just want to be understood' 

    You can also add humanizing rules by calling _.human

    Example:

    _.human(/_cnt$/,'_count');
    _.humanize('jargon_cnt');  //=> 'Jargon count' 

    titleize

    Title case a underscored or camel cased string

    Example:

    _.titleize('three_blind_mice');  //=> 'Three Blind Mice' 
    _.titleize('JackAndJill'); //=> 'Jack And Jill' 

    License

    MIT. See LICENSE.

    Keywords

    none

    install

    npm i underscore.inflections

    Downloadslast 7 days

    2,861

    version

    0.2.1

    license

    none

    repository

    github.com

    last publish

    collaborators

    • avatar