diff --git a/app/assets/javascripts/discourse/lib/formatter.js.es6 b/app/assets/javascripts/discourse/lib/formatter.js.es6 index 28bdb6cef2d..2a93f590d72 100644 --- a/app/assets/javascripts/discourse/lib/formatter.js.es6 +++ b/app/assets/javascripts/discourse/lib/formatter.js.es6 @@ -1,54 +1,3 @@ -/* global BreakString:true */ - -/* - * memoize.js - * by @philogb and @addyosmani - * with further optimizations by @mathias - * and @DmitryBaranovsk - * perf tests: http://bit.ly/q3zpG3 - * Released under an MIT license. - * - * modified with cap by Sam - */ -function cappedMemoize(fn, max) { - fn.maxMemoize = max; - fn.memoizeLength = 0; - - return function() { - const args = Array.prototype.slice.call(arguments); - let hash = ""; - let i = args.length; - let currentArg = null; - while (i--) { - currentArg = args[i]; - hash += - currentArg === new Object(currentArg) - ? JSON.stringify(currentArg) - : currentArg; - if (!fn.memoize) { - fn.memoize = {}; - } - } - if (hash in fn.memoize) { - return fn.memoize[hash]; - } else { - fn.memoizeLength++; - if (fn.memoizeLength > max) { - fn.memoizeLength = 0; - fn.memoize = {}; - } - const result = fn.apply(this, args); - fn.memoize[hash] = result; - return result; - } - }; -} - -const breakUp = cappedMemoize(function(str, hint) { - return new BreakString(str).break(hint); -}, 100); -export { breakUp }; - export function shortDate(date) { return moment(date).format(I18n.t("dates.medium.date_year")); } diff --git a/app/assets/javascripts/vendor.js b/app/assets/javascripts/vendor.js index 0d1ee8b7297..3b36c27ea1e 100644 --- a/app/assets/javascripts/vendor.js +++ b/app/assets/javascripts/vendor.js @@ -25,7 +25,6 @@ //= require mousetrap-global-bind.js //= require rsvp.js //= require show-html.js -//= require break_string //= require buffered-proxy //= require jquery.autoellipsis-1.0.10 //= require virtual-dom diff --git a/test/javascripts/lib/break-string-test.js.es6 b/test/javascripts/lib/break-string-test.js.es6 new file mode 100644 index 00000000000..e46a7f12519 --- /dev/null +++ b/test/javascripts/lib/break-string-test.js.es6 @@ -0,0 +1,20 @@ +/* global BreakString:true */ + +QUnit.module("lib:breakString", {}); + +QUnit.test("breakString", assert => { + var b = function(s, hint) { + return new BreakString(s).break(hint); + }; + + assert.equal(b("hello"), "hello"); + assert.equal(b("helloworld"), "helloworld"); + assert.equal(b("HeMans11"), "He​Mans​11"); + assert.equal(b("he_man"), "he_​man"); + assert.equal(b("he11111"), "he​11111"); + assert.equal(b("HRCBob"), "HRC​Bob"); + assert.equal( + b("bobmarleytoo", "Bob Marley Too"), + "bob​marley​too" + ); +}); diff --git a/test/javascripts/lib/formatter-test.js.es6 b/test/javascripts/lib/formatter-test.js.es6 index 693fdeb8238..4ce2f57bf90 100644 --- a/test/javascripts/lib/formatter-test.js.es6 +++ b/test/javascripts/lib/formatter-test.js.es6 @@ -4,7 +4,6 @@ import { relativeAge, autoUpdatingRelativeAge, updateRelativeAge, - breakUp, number, longDate, durationTiny @@ -211,23 +210,6 @@ QUnit.test("updateRelativeAge", assert => { assert.equal($elem.html(), "2 mins ago"); }); -QUnit.test("breakUp", assert => { - var b = function(s, hint) { - return breakUp(s, hint); - }; - - assert.equal(b("hello"), "hello"); - assert.equal(b("helloworld"), "helloworld"); - assert.equal(b("HeMans11"), "He​Mans​11"); - assert.equal(b("he_man"), "he_​man"); - assert.equal(b("he11111"), "he​11111"); - assert.equal(b("HRCBob"), "HRC​Bob"); - assert.equal( - b("bobmarleytoo", "Bob Marley Too"), - "bob​marley​too" - ); -}); - QUnit.test("number", assert => { assert.equal(number(123), "123", "it returns a string version of the number"); assert.equal(number("123"), "123", "it works with a string command"); diff --git a/test/javascripts/test_helper.js b/test/javascripts/test_helper.js index 6183d08cb3a..f005b678ab1 100644 --- a/test/javascripts/test_helper.js +++ b/test/javascripts/test_helper.js @@ -33,6 +33,7 @@ //= require helpers/assertions +//= require break_string //= require helpers/qunit-helpers //= require_tree ./fixtures //= require_tree ./lib