Skip to content
This repository has been archived by the owner on Sep 26, 2019. It is now read-only.

Commit

Permalink
Implemented log.utils.box
Browse files Browse the repository at this point in the history
  • Loading branch information
broadsw0rd committed Apr 16, 2015
1 parent d2fa10f commit b693d4c
Show file tree
Hide file tree
Showing 7 changed files with 348 additions and 90 deletions.
2 changes: 0 additions & 2 deletions .jshintrc
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
{
"asi": true,
"laxcomma": true,
"laxbreak": true,
"shadow": true,
"proto": true,
"validthis": true
}
25 changes: 25 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,31 @@ log.utils.callout('message', '|') // useful for emphasize
| message
|
#### `.box(text[, symbol, padding])`
Create an ASCII box, support optional symbol and padding arguments
```js
log.utils.box('message')
```
*************
* *
* message *
* *
*************
```js
log.utils.box('multiline\nmessage', '#', { left: 3, right: 3 })
```
#################
# #
# multiline #
# message #
# #
#################
- - - - - - -
## Advanced Usage
Expand Down
2 changes: 1 addition & 1 deletion bower.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "enhanced-log",
"version": "2.1.1",
"version": "2.2.0",
"homepage": "http://broadsw0rd.github.io/enhanced-log/",
"authors": [
"Vladimir Bykov <broadsw.rd@yandex.ru>"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "enhanced-log",
"version": "2.1.1",
"version": "2.2.0",
"description": "Make your console.log more sexy",
"keywords": [
"log",
Expand Down
98 changes: 73 additions & 25 deletions src/log.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,22 +110,17 @@
length = symbol
symbol = DEFAULT_DIVIDER_SYMBOL
}
if(/\n/.test(text)){
return text.replace('\r', '').split('\n').map(function (text){
return _divider(text, symbol, length)

return text.replace('\r', '').split('\n').map(function (text){
var len = Math.ceil((length - (text.length + 2)) / 2)
, start = Array(len + 1).join(symbol)
, end = Array(len + 1).join(symbol)

return [start, text, end].join(' ')
}).join('\n')
}
else {
length = Math.ceil((length - (text.length + 2)) / 2)

var start = Array(length).join(symbol)
, end = Array(length).join(symbol)

return [start, text, end].join(' ')
}
}
else {
return Array(length).join(symbol)
return Array(length + 1).join(symbol)
}
}

Expand All @@ -137,20 +132,72 @@

function _callout(message, symbol){
symbol = symbol || DEFAULT_CALLOUT_SYMBOL
if(/\n/.test(message)){
return [
'\t' + symbol
, message.replace('\r', '').split('\n').map(function (message){ return '\t' + symbol + ' ' + message }).join('\r\n')
, '\t' + symbol
].join('\r\n')

message = message.replace('\r', '').split('\n').map(function (message){
return symbol + ' ' + message
}).join('\n\t')

return [
'\t' + symbol
, '\t' + message
, '\t' + symbol
].join('\n')
}

// -------------------------------------
// Callout
// -------------------------------------

var DEFAULT_BOX_SYMBOL = '*'
, DEFAULT_BOX_PADDING = {
top: 1
, right: 2
, bottom: 1
, left: 2
}
else {
return [
'\t' + symbol
, '\t' + symbol + ' ' + message
, '\t' + symbol
].join('\r\n')

function _box(message, symbol, padding){
symbol = symbol || DEFAULT_BOX_SYMBOL

if(typeof symbol == 'object'){
padding = symbol
symbol = DEFAULT_BOX_SYMBOL
}

padding = _extend({}, DEFAULT_BOX_PADDING, padding || {})

var messages = message.replace('\r', '').split('\n')

, longestMessage = messages.reduce(function (a, b) { return a.length > b.length ? a : b })

, leftPadding = Array(padding.left + 1).join(' ')

, rightPadding = Array(padding.right + 1).join(' ')

, emptyRow = Array(longestMessage.length + 1).join(' ')

, horisontalBorder = Array(longestMessage.length + padding.left + padding.right + 3).join(symbol)

, topSpace = Array.apply(null, { length : padding.top }).map(function(){
return symbol + leftPadding + emptyRow + rightPadding + symbol
}).join('\n\t')

, bottomSpace = Array.apply(null, { length : padding.bottom }).map(function(){
return symbol + leftPadding + emptyRow + rightPadding + symbol
}).join('\n\t')

messages = messages.map(function (message){
var postfix = Array(longestMessage.length - message.length + 1).join(' ')
return symbol + leftPadding + message + postfix + rightPadding + symbol
}).join('\n\t')

return [
'\t' + horisontalBorder
, '\t' + topSpace
, '\t' + messages
, '\t' + bottomSpace
, '\t' + horisontalBorder
].join('\n')
}

// =====================================
Expand Down Expand Up @@ -191,6 +238,7 @@
, parseStyles: _parseStyles
, divider: _divider
, callout: _callout
, box: _box
}

var defaults = {
Expand Down
Loading

0 comments on commit b693d4c

Please sign in to comment.