mirror of
https://github.com/flynx/features.js.git
synced 2025-10-29 18:30:11 +00:00
now FeatureSet.setup(..) cleanly removed unneeded features...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
7315e95d21
commit
ad32e8cd1b
24
features.js
24
features.js
@ -111,6 +111,13 @@ object.Constructor('Feature', {
|
|||||||
//__featureset__: Features,
|
//__featureset__: Features,
|
||||||
__featureset__: null,
|
__featureset__: null,
|
||||||
|
|
||||||
|
__verbose: null,
|
||||||
|
get __verbose__(){
|
||||||
|
return this.__verbose == null
|
||||||
|
&& (this.__featureset__ || {}).__verbose__ },
|
||||||
|
set __verbose__(value){
|
||||||
|
this.__verbose = value },
|
||||||
|
|
||||||
// Attributes...
|
// Attributes...
|
||||||
tag: null,
|
tag: null,
|
||||||
|
|
||||||
@ -181,8 +188,9 @@ object.Constructor('Feature', {
|
|||||||
|| (this.actions != null
|
|| (this.actions != null
|
||||||
&& this.actions.config != null)){
|
&& this.actions.config != null)){
|
||||||
// sanity check -- warn of config shadowing...
|
// sanity check -- warn of config shadowing...
|
||||||
// XXX make this optional...
|
// XXX do we need this???
|
||||||
if(this.config && this.actions && this.actions.config){
|
if(this.__verbose__
|
||||||
|
&& this.config && (this.actions || {}).config){
|
||||||
console.warn('Feature config shadowed: '
|
console.warn('Feature config shadowed: '
|
||||||
+'both .config (used) and .actions.config (ignored) are defined for:',
|
+'both .config (used) and .actions.config (ignored) are defined for:',
|
||||||
this.tag,
|
this.tag,
|
||||||
@ -1060,13 +1068,20 @@ object.Constructor('FeatureSet', {
|
|||||||
if(fatal){
|
if(fatal){
|
||||||
throw new FeatureLinearizationError(features) }
|
throw new FeatureLinearizationError(features) }
|
||||||
|
|
||||||
|
// mixout everything...
|
||||||
|
this.remove(obj,
|
||||||
|
obj.mro('tag')
|
||||||
|
.filter(function(e){
|
||||||
|
return !!e }))
|
||||||
|
|
||||||
// do the setup...
|
// do the setup...
|
||||||
var that = this
|
var that = this
|
||||||
var setup = Feature.prototype.setup
|
var setup = Feature.prototype.setup
|
||||||
features.features.forEach(function(n){
|
features.features.forEach(function(n){
|
||||||
// setup...
|
// setup...
|
||||||
if(that[n] != null){
|
if(that[n] != null){
|
||||||
this.__verbose__ && console.log('Setting up feature:', n)
|
this.__verbose__
|
||||||
|
&& console.log('Setting up feature:', n)
|
||||||
setup.call(that[n], obj) } })
|
setup.call(that[n], obj) } })
|
||||||
|
|
||||||
return obj },
|
return obj },
|
||||||
@ -1082,7 +1097,8 @@ object.Constructor('FeatureSet', {
|
|||||||
var that = this
|
var that = this
|
||||||
lst.forEach(function(n){
|
lst.forEach(function(n){
|
||||||
if(that[n] != null){
|
if(that[n] != null){
|
||||||
console.log('Removing feature:', n)
|
this.__verbose__
|
||||||
|
&& console.log('Removing feature:', n)
|
||||||
that[n].remove(obj) } }) },
|
that[n].remove(obj) } }) },
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ig-features",
|
"name": "ig-features",
|
||||||
"version": "3.4.5",
|
"version": "3.4.6",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "features.js",
|
"main": "features.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user