From fe262ec3f1d1072ed2a189809974022124cff42a Mon Sep 17 00:00:00 2001 From: Joseph Werle Date: Wed, 6 May 2020 11:40:08 -0400 Subject: [PATCH] Add methods for exposing internal state --- pluralize.js | 35 +++++++++++++++++++++++++++++++++++ test.js | 31 +++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/pluralize.js b/pluralize.js index 1829fc8..d13fad7 100644 --- a/pluralize.js +++ b/pluralize.js @@ -265,6 +265,41 @@ irregularPlurals[plural] = single; }; + /** + * Get all known plural rules. + */ + pluralize.getPluralRules = function () { + return pluralRules; + }; + + /** + * Get all known singular rules. + */ + pluralize.getSingularRules = function () { + return singularRules; + }; + + /** + * Get all known uncountable words. + */ + pluralize.getUncountables = function () { + return uncountables; + }; + + /** + * Get all known irregular plural words. + */ + pluralize.getIrregularPlurals = function () { + return irregularPlurals; + }; + + /** + * Get all known irregular single words. + */ + pluralize.getIrregularSingles = function () { + return irregularSingles; + }; + /** * Irregular rules. */ diff --git a/test.js b/test.js index fc84d37..d1f3e35 100644 --- a/test.js +++ b/test.js @@ -833,4 +833,35 @@ describe('pluralize', function () { expect(pluralize.singular('mornings')).to.equal('suck'); }); }); + + describe('getting existing rules', function () { + it('should allow access to plural rules', function () { + var rules = pluralize.getPluralRules(); + expect(rules).to.be.an('array'); + }); + + it('should allow access to singular rules', function () { + var rules = pluralize.getSingularRules(); + expect(rules).to.be.an('array'); + }); + }); + + describe('getting uncountable words', function () { + it('should allow access to uncountable words', function () { + var uncountable = pluralize.getUncountables(); + expect(uncountable).to.be.ok.and.an('object'); + }); + }); + + describe('getting irregular words', function () { + it('should allow access to irregular plural words', function () { + var irregular = pluralize.getIrregularPlurals(); + expect(irregular).to.be.ok.and.an('object'); + }); + + it('should allow access to irregular singular words', function () { + var irregular = pluralize.getIrregularSingles(); + expect(irregular).to.be.ok.and.an('object'); + }); + }); });