CasperSecurity

Current Path : /usr/share/nodejs/cli-table2/src/
Upload File :
Current File : //usr/share/nodejs/cli-table2/src/table.js

var utils = require('./utils');
var tableLayout = require('./layout-manager');
var _ = require('lodash');

function Table(options){
  this.options = utils.mergeOptions(options);
}

Table.prototype.__proto__ = Array.prototype;

Table.prototype.toString = function(){
  var array = this;
  var headersPresent = this.options.head && this.options.head.length;
  if(headersPresent){
    array = [this.options.head];
    if(this.length){
      array.push.apply(array,this);
    }
  }
  else {
    this.options.style.head=[];
  }

  var cells = tableLayout.makeTableLayout(array);

  _.forEach(cells,function(row){
    _.forEach(row,function(cell){
      cell.mergeTableOptions(this.options,cells);
    },this);
  },this);

  tableLayout.computeWidths(this.options.colWidths,cells);
  tableLayout.computeHeights(this.options.rowHeights,cells);

  _.forEach(cells,function(row,rowIndex){
    _.forEach(row,function(cell,cellIndex){
      cell.init(this.options);
    },this);
  },this);

  var result = [];

  for(var rowIndex = 0; rowIndex < cells.length; rowIndex++){
    var row = cells[rowIndex];
    var heightOfRow = this.options.rowHeights[rowIndex];

    if(rowIndex === 0 || !this.options.style.compact || (rowIndex == 1 && headersPresent)){
      doDraw(row,'top',result);
    }

    for(var lineNum = 0; lineNum < heightOfRow; lineNum++){
      doDraw(row,lineNum,result);
    }

    if(rowIndex + 1 == cells.length){
      doDraw(row,'bottom',result);
    }
  }

  return result.join('\n');
};

function doDraw(row,lineNum,result){
  var line = [];
  _.forEach(row,function(cell){
    line.push(cell.draw(lineNum));
  });
  var str = line.join('');
  if(str.length) result.push(str);
}

Table.prototype.__defineGetter__('width', function (){
  var str = this.toString().split("\n");
  return str[0].length;
});

module.exports = Table;
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY