Skip to content

Commit 4fa2e04

Browse files
authored
Merge pull request #106 from stefanpenner/fix/custom-irregular-words
Fix/custom irregular words
2 parents cf3b046 + 1279db6 commit 4fa2e04

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

addon/lib/system/inflector.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ Inflector.prototype = {
266266
return word;
267267
}
268268

269-
for (rule in this.rules.irregular) {
269+
for (rule in irregular) {
270270
if (lowercase.match(rule+"$")) {
271271
substitution = irregular[rule];
272272

@@ -275,7 +275,7 @@ Inflector.prototype = {
275275
rule = capitalize(rule);
276276
}
277277

278-
return word.replace(rule, substitution);
278+
return word.replace(new RegExp(rule, 'i'), substitution);
279279
}
280280
}
281281

tests/unit/inflector-test.js

+12
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,18 @@ test('CamelCase and UpperCamelCase is preserved for irregular and uncountable si
359359
assert.equal(inflector.singularize('friedRice'), 'friedRice');
360360
});
361361

362+
test('CamelCase custom irregular words', function(assert) {
363+
var inflector = new Ember.Inflector(Ember.Inflector.defaultRules);
364+
inflector.irregular('unitOfMeasure', 'unitsOfMeasure');
365+
inflector.irregular('tipoDocumento', 'tiposDocumento');
366+
367+
assert.equal(inflector.singularize('unitsOfMeasure'), 'unitOfMeasure');
368+
assert.equal(inflector.pluralize('unitOfMeasure'), 'unitsOfMeasure');
369+
370+
assert.equal(inflector.singularize('tiposDocumento'), 'tipoDocumento');
371+
assert.equal(inflector.pluralize('tipoDocumento'), 'tiposDocumento');
372+
});
373+
362374
test('Ember.Inflector.pluralize passes same test cases as ActiveSupport::Inflector#pluralize', function(assert) {
363375
var inflector = new Ember.Inflector(Ember.Inflector.defaultRules);
364376

0 commit comments

Comments
 (0)