2.0.1 • Published 9 years ago

encase v2.0.1

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

encase.js Build Status

An JavaScript library for changing between camelCase, snake_case, kebab-case, and more.

Installation

In a browser:

<script src="encase.js"></script>

Via bower:

bower install encase.js

Notes

This method will provides a global Encase object. That means that once you include it, you can use it like this:

var str = 'camelCase';
var convertedStr = Encase.toLowerSnake(str);
// = 'camel_case'

Encase supports switching to 6 cases:

  • toLowerCamel (e.g. someVariableName)
  • toUpperCamel (e.g. SomeVariableName)
  • toLowerSnake (e.g. some_variable_name)
  • toUpperSnake (e.g. SOME_VARIABLE_NAME)
  • toLowerKebab (e.g. some-variable-name)
  • toUpperKebab (e.g. SOME-VARIABLE-NAME)

Encase automatically detects the "from" case, so you only have to tell it what you want to switch to. It also provides a general separate function for splitting up strings:

var str = 'camelCase';
var words = Encase.separate(str);
// = ['camel', 'Case']

In addition to separate, Encase provides a convert function for making arbitrary conversions to any case:

The arguments are:

  • headTransform: how the the first word should be transformed
  • tailTransform: how the rest of the words should be transformed
  • sep: how the words should be joined back together
  • str: the string to operate on

Here's an example for converting any casing to "colon case" (which is used in products like Redis for key naming):

var str = 'UpperCamel';
function toLowerCase(str) { return str.toLowerCase(); }
var convertedStr = Encase.convert(toLowerCase, toLowerCase, ':', str);
// = 'upper:camel'

And, if you want to get fancy:

Encase.toLowerColon = Encase.convert.bind(null, 
    Function.prototype.bind.call(String.prototype.toLowerCase),
    Function.prototype.bind.call(String.prototype.toLowerCase),
    ':'
);

var str = 'UpperCamel';
var convertStr = Encase.toLowerColon(str);
// = 'upper:camel'

Author

twitter/cdmckay
Cameron McKay

License

This library is available under the MIT license.