mirror of https://gitee.com/bigwinds/arangodb
* Make jsunity hash function avoid recursion This guards against traversals of recursive data structures causing a stack overflow. This is crucial when using assertEqual with unknown inputs. * Update deps accepts: 1.3.4 -> 1.3.5 ansi_up: 2.0.2 -> 4.0.3 content-disposition: 0.5.2 -> 0.5.3 dedent: 0.6.0 -> 0.7.0 error-stack-parser: 1.3.6 -> 2.0.2 eslint: 2.13.1 -> 5.16.0 eslint-config-semistandard: 6.0.2 -> removed eslint-config-standard: 5.3.1 -> removed eslint-plugin-promise: 1.3.2 -> removed eslint-plugin-standard: 1.3.2 -> removed highlight.js: 9.12.0 -> 9.15.6 http-errors: 1.6.2 -> 1.7.2 iconv-lite: 0.4.19 -> 0.4.24 joi: 9.2.0 -> 14.3.1 joi-to-json-schema: 2.3.0 -> 4.0.1 js-yaml: 3.10.0 -> 3.13.1 marked: 0.3.9 -> 0.6.2 mime-types: 2.1.12 -> 2.1.22 mocha: 2.5.3 -> 6.1.3 qs: 6.5.1 -> 6.7.0 semver: 5.4.1 -> 6.0.0 statuses: 1.4.0 -> 1.5.0 timezone: 1.0.13 -> 1.0.22 type-is: 1.6.15 -> 1.6.16 underscore: 1.8.3 -> 1.9.1 * Inline eslint semistandard config The eslint standard config has become extremely opinionated and incompatible with the existing coding style. This subset matches the existing coding style most closely. In the future we should migrate to an autoformatter like prettier and avoid this problem altogether. * Linting * Fix mocha runner * New joi has additional property |
||
---|---|---|
.. | ||
lib | ||
test | ||
.npmignore | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
package.json |
README.md
inflect
customizable inflections for nodejs
NOTE: 0.3.2 was accidentally unpublished from the server and npm doesn't allow me to publish it back. Please upgrade to 0.3.3
Installation
npm install i
Usage
Require the module before using
var inflect = require('i')();
All the below api functions can be called directly on a string
inflect.titleize('messages to store') // === 'Messages To Store'
'messages to store'.titleize // === 'Messages To Store'
only if true
is passed while initiating
var inflect = require('i')(true);
Pluralize
inflect.pluralize('person'); // === 'people'
inflect.pluralize('octopus'); // === 'octopi'
inflect.pluralize('Hat'); // === 'Hats'
Singularize
inflect.singularize('people'); // === 'person'
inflect.singularize('octopi'); // === 'octopus'
inflect.singularize('Hats'); // === 'Hat'
Camelize
inflect.camelize('message_properties'); // === 'MessageProperties'
inflect.camelize('message_properties', false); // === 'messageProperties'
Underscore
inflect.underscore('MessageProperties'); // === 'message_properties'
inflect.underscore('messageProperties'); // === 'message_properties'
Humanize
inflect.humanize('message_id'); // === 'Message'
Dasherize
inflect.dasherize('message_properties'); // === 'message-properties'
inflect.dasherize('Message Properties'); // === 'Message Properties'
Titleize
inflect.titleize('message_properties'); // === 'Message Properties'
inflect.titleize('message properties to keep'); // === 'Message Properties to Keep'
Demodulize
inflect.demodulize('Message.Bus.Properties'); // === 'Properties'
Tableize
inflect.tableize('MessageBusProperty'); // === 'message_bus_properties'
Classify
inflect.classify('message_bus_properties'); // === 'MessageBusProperty'
Foreign key
inflect.foreign_key('MessageBusProperty'); // === 'message_bus_property_id'
inflect.foreign_key('MessageBusProperty', false); // === 'message_bus_propertyid'
Ordinalize
inflect.ordinalize( '1' ); // === '1st'
Custom rules for inflection
Custom plural
We can use regexp in any of these custom rules
inflect.inflections.plural('person', 'guys');
inflect.pluralize('person'); // === 'guys'
inflect.singularize('guys'); // === 'guy'
Custom singular
inflect.inflections.singular('guys', 'person')
inflect.singularize('guys'); // === 'person'
inflect.pluralize('person'); // === 'people'
Custom irregular
inflect.inflections.irregular('person', 'guys')
inflect.pluralize('person'); // === 'guys'
inflect.singularize('guys'); // === 'person'
Custom human
inflect.inflections.human(/^(.*)_cnt$/i, '$1_count');
inflect.inflections.humanize('jargon_cnt'); // === 'Jargon count'
Custom uncountable
inflect.inflections.uncountable('oil')
inflect.pluralize('oil'); // === 'oil'
inflect.singularize('oil'); // === 'oil'
Contributors
Here is a list of Contributors
TODO
- More obscure test cases
I accept pull requests and guarantee a reply back within a day
License
MIT/X11
Bug Reports
Report here. Guaranteed reply within a day.
Contact
Pavan Kumar Sunkara (pavan.sss1991@gmail.com)