From 32ad302369997d7105629d9c636e9a6dd72ba02e Mon Sep 17 00:00:00 2001 From: Sebastian Weyrauch Date: Tue, 17 Jan 2017 09:57:39 +0100 Subject: [PATCH 1/4] fixed and improved JS scaffolding --- source/modules/.scaffold/scaffold.hbs | 2 +- source/modules/.scaffold/scaffold.js | 63 ++++++++++++++------------- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/source/modules/.scaffold/scaffold.hbs b/source/modules/.scaffold/scaffold.hbs index 832de801..5a82d7cd 100644 --- a/source/modules/.scaffold/scaffold.hbs +++ b/source/modules/.scaffold/scaffold.hbs @@ -1,3 +1,3 @@ -
+
{{originalName}}
diff --git a/source/modules/.scaffold/scaffold.js b/source/modules/.scaffold/scaffold.js index cc4926f9..74cc93d2 100644 --- a/source/modules/.scaffold/scaffold.js +++ b/source/modules/.scaffold/scaffold.js @@ -1,39 +1,49 @@ -/*! +import EstaticoModule from '../../assets/js/helpers/module'; + +const name = '{{name}}'; + +/* * {{originalName}} * * @author * @copyright */ -import EstaticoModule from '../../assets/js/helpers/module'; - -class {{className}} extends EstaticoModule { +export default class {{className}} extends EstaticoModule { + static events = { + // eventname: `eventname.estatico.${name}` + }; + static defaultData = {}; + static defaultOptions = { + domSelectors: { + // item: `[data-${name}="item"]` + }, + stateClasses: { + // activated: 'is_activated' + } + }; constructor($element, data, options) { - let _defaultData = {}, - _name = '{{name}}', - _defaultOptions = { - domSelectors: { - // item: '[data-' + _name + '="item"]' - }, - stateClasses: { - // activated: 'is_activated' - } - }; - - super($element, _defaultData, _defaultOptions, data, options); + super($element, {{className}}.defaultData, {{className}}.defaultOptions, data, options); this._initUi(); this._initEventListeners(); } - static get events() { - return { - // eventname: 'eventname.estatico.' + {{name}} - }; + /** + * Unbind events, remove data, custom teardown + * + * @public + */ + destroy() { + super.destroy(); + + // Custom destroy actions go here } /** * Initialisation of variables, which point to DOM elements + * + * @private */ _initUi() { // DOM element pointers @@ -41,19 +51,10 @@ class {{className}} extends EstaticoModule { /** * Event listeners initialisation + * + * @private */ _initEventListeners() { // Event listeners } - - /** - * Unbind events, remove data, custom teardown - */ - destroy() { - super.destroy(); - - // Custom destroy actions go here - } } - -export default {{className}}; From d8ccf82d57dcdcc869b1d1757d634ffbb8aac2ee Mon Sep 17 00:00:00 2001 From: Sebastian Weyrauch Date: Tue, 17 Jan 2017 12:14:29 +0100 Subject: [PATCH 2/4] further improvement of the scaffolding (removed the name constant) --- source/modules/.scaffold/scaffold.hbs | 2 +- source/modules/.scaffold/scaffold.js | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/source/modules/.scaffold/scaffold.hbs b/source/modules/.scaffold/scaffold.hbs index 5a82d7cd..832de801 100644 --- a/source/modules/.scaffold/scaffold.hbs +++ b/source/modules/.scaffold/scaffold.hbs @@ -1,3 +1,3 @@ -
+
{{originalName}}
diff --git a/source/modules/.scaffold/scaffold.js b/source/modules/.scaffold/scaffold.js index 74cc93d2..d17f5982 100644 --- a/source/modules/.scaffold/scaffold.js +++ b/source/modules/.scaffold/scaffold.js @@ -1,7 +1,5 @@ import EstaticoModule from '../../assets/js/helpers/module'; -const name = '{{name}}'; - /* * {{originalName}} * @@ -10,12 +8,12 @@ const name = '{{name}}'; */ export default class {{className}} extends EstaticoModule { static events = { - // eventname: `eventname.estatico.${name}` + // eventname: `eventname.estatico.${{{className}}.name}` }; static defaultData = {}; static defaultOptions = { domSelectors: { - // item: `[data-${name}="item"]` + // item: `[data-${{{className}}.name}}="item"]` }, stateClasses: { // activated: 'is_activated' From 04d65e9511ed687ab02bcabf6ef8ec187d57f726 Mon Sep 17 00:00:00 2001 From: Sebastian Weyrauch Date: Tue, 17 Jan 2017 12:15:26 +0100 Subject: [PATCH 3/4] adjusted the instance's name to class' name --- source/assets/js/helpers/module.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/assets/js/helpers/module.js b/source/assets/js/helpers/module.js index aa36c482..32df3905 100644 --- a/source/assets/js/helpers/module.js +++ b/source/assets/js/helpers/module.js @@ -12,7 +12,7 @@ class EstaticoModule { * @param {object} options - The options passed as data attribute in the Module */ constructor($element, _defaultData, _defaultOptions, data, options) { - this.name = this.constructor.name.toLowerCase(); + this.name = this.constructor.name; this.ui = { $element From 16a511325a73636193777ce14c30e434a7d165a9 Mon Sep 17 00:00:00 2001 From: Sebastian Weyrauch Date: Tue, 17 Jan 2017 12:16:06 +0100 Subject: [PATCH 4/4] adjusted the scaffolding gulp task to the new naming --- gulp/scaffold/default.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulp/scaffold/default.js b/gulp/scaffold/default.js index 71f77787..5377ba21 100644 --- a/gulp/scaffold/default.js +++ b/gulp/scaffold/default.js @@ -48,7 +48,7 @@ var taskName = 'scaffold', src: './source/assets/js/helpers/estaticoapp.js', insertionPoint: '/* autoinsertmodule */', importInsertionPoint: '/* autoinsertmodulereference */', - insertionTemplate: 'this.modules.{{keyName}} = {{className}};\n ', + insertionTemplate: 'this.modules[{{className}}.name] = {{className}};\n ', importInsertionTemplate: 'import {{className}} from \'{{modulePath}}\';\n' },