diff --git a/lib/list.js b/lib/list.js index 308fea60..80539bdd 100644 --- a/lib/list.js +++ b/lib/list.js @@ -1,3 +1,4 @@ +var util = require('util'); /*! * 缓存列表 */ @@ -22,21 +23,30 @@ List.prototype.get = function (key) { * 静态方法,根据items生成List对象,并放置到缓存中 * @param {String} name 列表名字 * @param {Array} items 元素列表 + * @param {String} head 回复开头 + * @param {String} delimiter 回复分隔符 + * @param {String} foot 回复底部 */ -List.add = function (name, items) { +List.add = function(name, items, head, delimiter, foot) { var description = []; var list = new List(); list.name = name; - items.forEach(function (item) { + items.forEach(function(item) { var text = item[0]; // 抽取出key,并关联上对应的handle - var replaced = text.replace(/\{(.*)\}/, function (match, key) { + var replaced = text.replace(/\{(.*)\}/, function(match, key) { list.map[key] = item[1]; return key; }); description.push(replaced); }); - list.description = description.join('\n'), + + if (delimiter) { + var lists = description.join('\n' + (delimiter || '') + '\n'); + list.description = util.format('%s\n%s\n%s', head || '', lists, (foot || '')); + } else { + list.description = description.join('\n'); + } listCache[name] = list; }; diff --git a/test/list.test.js b/test/list.test.js index 2469b623..83b17300 100644 --- a/test/list.test.js +++ b/test/list.test.js @@ -1,3 +1,4 @@ + var should = require('should'); var List = require('../').List; @@ -44,4 +45,22 @@ describe('list.js', function () { list.get('b').should.be.equal(common[2][1]); list.get('c').should.be.equal(common[3][1]); }); + + it('should ok with body, foot, delimiter', function() { + var common = [ + ['选择{a}查看啥', function () {}], + ['选择{b}查看啥', function () {}], + ['选择{c}查看啥', function () {}] + ]; + var head = '我是头'; + var delimiter = '-------'; + var foot = '我是小尾巴'; + + List.add('common', common, head, delimiter, '我是小尾巴'); + var list = List.get('common'); + list.description.should.be.equal(head + '\n选择a查看啥\n' + delimiter + '\n选择b查看啥\n' + delimiter + '\n选择c查看啥\n' + foot); + list.get('a').should.be.equal(common[0][1]); + list.get('b').should.be.equal(common[1][1]); + list.get('c').should.be.equal(common[2][1]); + }); });