code: function(action, settings){
              if(!this.performableActions){
                  return false;
              }
              var handler = this.performableActions[action];
              if(!handler){
                  return false;
              }
              if(handler.canPerformAction === false){
                  return false;
              }
  
              if(!(handler.canPerformAction === true || handler.canPerformAction.call(this, settings))){
                  return false;
              }
              return true;
          }
docs: Checks if source can perform an action with given settings. (source is `this`)
  Functionality separated to avoid checking multiple targets when source cannot perform action regardless of target.
  @method canPerformAction
  @param {string} action - The action to check.
  @param {Object} [settings] - Settings for the action.
  @return {Boolean} `true` if the action can be performed.