From c3f8aff29a8128ff8b6061c0b0b7e2b2301addb4 Mon Sep 17 00:00:00 2001 From: Raymond Tang Date: Mon, 26 Sep 2016 16:56:07 -0400 Subject: [PATCH] sharedInstance should not be a computed property. It prevents custom rules from persisting. --- Pluralize/Pluralize.swift | 4 +--- PluralizeTests/PluralizeTests.swift | 12 ++++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Pluralize/Pluralize.swift b/Pluralize/Pluralize.swift index 92d9d3b..9571bdb 100644 --- a/Pluralize/Pluralize.swift +++ b/Pluralize/Pluralize.swift @@ -160,9 +160,7 @@ public class Pluralize { sharedInstance.unchanging(word: word) } - class var sharedInstance : Pluralize { - return Pluralize() - } + static var sharedInstance = Pluralize() private class func regexReplace(input: String, pattern: String, template: String) -> String { let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive) diff --git a/PluralizeTests/PluralizeTests.swift b/PluralizeTests/PluralizeTests.swift index dc1d0b6..58cb695 100644 --- a/PluralizeTests/PluralizeTests.swift +++ b/PluralizeTests/PluralizeTests.swift @@ -183,4 +183,16 @@ class PluralizeTests: XCTestCase { XCTAssertEqual(singular.pluralize(), plural, "Plural of \(singular) should be \(plural)") } } + + func testAddingRules() { + let singular = "word" + let plural = "words" + Pluralize.add(rule: singular, with: plural) + XCTAssertEqual(singular.pluralize(), plural, "Plural of \(singular) should be \(plural)") + + // Override rule with another rule + let overridingPlural = "wordies" + Pluralize.add(rule: singular, with: overridingPlural) + XCTAssertEqual(singular.pluralize(), overridingPlural, "Plural of \(singular) should be \(overridingPlural)") + } }