Skip to content

Commit

Permalink
v 0.2.2 Mejoro la documentación
Browse files Browse the repository at this point in the history
  • Loading branch information
emilioplatzer committed Sep 2, 2017
1 parent 87b7a29 commit cd875e6
Show file tree
Hide file tree
Showing 7 changed files with 184 additions and 15 deletions.
4 changes: 1 addition & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@ node_js:
- "0.12.7"
- "4"
- "6"
- "7"
- "8"
matrix:
fast_finish: true
allow_failures:
- node_js: "7"
script: "npm run-script test-ci"
after_script: "npm install coveralls@2.11.8 && cat ./coverage/lcov.info | coveralls"
83 changes: 81 additions & 2 deletions LEEME.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,93 @@ Shows differences between different values
<!--lang:en--]
## Use
[!--lang:*-->

```js
var discrepances = require('discrepances');

var a={x:1, y:2, z:[3], d:4, e:[{j:3, k:4, m:['a', 'b']}]};
var b={x:1, y:2, z:[3], d:44, e:[{j:3, k:4, m:['a'] }]};

var detectedDiscrepances = discrepances.nestedObject(a,b)
if(detectedDiscrepances){
console.dir(detectedDiscrepances, {depth:9});
}
/*
{
object:{
d:{ difference: -40, values: [ 4, 44 ] },
e:{
array:{
'0':{
object:{
m:{
array:{ length:{ difference: 1, values: [ 2, 1 ] } }
}
}
}
}
}
}
}
*/
var detectedDiscrepances = discrepances.flatten(a,b)
if(detectedDiscrepances){
console.log(detectedDiscrepances);
}
/*
{
'.d': { difference: -40, values: [ 4, 44 ] },
'.e[0].m[length]': { difference: 1, values: [ 2, 1 ] }
}
*/
```

# API

## discrepances.nestedObject(a,b[, opts])
<!--lang:es-->
Detecta discrepancias entre los objetos a y b.

Devuelve un objeto descriptivo con estructura similar a los objetos a y b
donde solo están las "ramas diferentes y la descrpición de su diferencia".

Si no hay discrepancias devuelve `null`.
<!--lang:en--]
(see spanish)
[!--lang:*-->

## discrepances.flatten(a,b[, opts])
<!--lang:es-->
Detecta discrepancias entre los objetos a y b.

Devuelve un objeto descriptivo simple
que tiene en las claves una descripción del camino a la diferencia
y en el valor la descripción de la diferencia.

Si no hay discrepancias devuelve `null`.
<!--lang:en--]
(see spanish)
[!--lang:*-->

## discrepances.showAndThrow(a, b[, opts])
<!--lang:es-->
Controla que no haya discrepancias entre los objetos a y b,
si la hay lanza una excepción y muestra las discrepancias en un `console.log`

Está diseñado para usar dentro de los test automáticos (ej: con `mocha`);
<!--lang:en--]
(see spanish)
[!--lang:*-->

```js
var discrepances = require('discrepances');

var a={x:1, y:2, z:[3], d:4, e:[{j:3, k:4, m:['a', 'b']}]};
var b={x:1, y:2, z:[3], d:44, e:[{j:3, k:4, m:['a'] }]};

console.log(JSON.stringify(discrepances(a, b)));

it("compares a with b", function(){
discrepances.showAndThrow(a,b,{context:'this message'})
});
```

<!--lang:es-->
Expand Down
55 changes: 54 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,67 @@ Shows differences between different values


## Use

```js
var discrepances = require('discrepances');

var a={x:1, y:2, z:[3], d:4, e:[{j:3, k:4, m:['a', 'b']}]};
var b={x:1, y:2, z:[3], d:44, e:[{j:3, k:4, m:['a'] }]};

console.log(JSON.stringify(discrepances(a, b)));
var detectedDiscrepances = discrepances.nestedObject(a,b)
if(detectedDiscrepances){
console.dir(detectedDiscrepances, {depth:9});
}
/*
{
object:{
d:{ difference: -40, values: [ 4, 44 ] },
e:{
array:{
'0':{
object:{
m:{
array:{ length:{ difference: 1, values: [ 2, 1 ] } }
}
}
}
}
}
}
}
*/
var detectedDiscrepances = discrepances.flatten(a,b)
if(detectedDiscrepances){
console.log(detectedDiscrepances);
}
/*
{
'.d': { difference: -40, values: [ 4, 44 ] },
'.e[0].m[length]': { difference: 1, values: [ 2, 1 ] }
}
*/
```

# API

## discrepances.nestedObject(a,b[, opts])
(see spanish)

## discrepances.flatten(a,b[, opts])
(see spanish)

## discrepances.showAndThrow(a, b[, opts])
(see spanish)

```js
var discrepances = require('discrepances');

var a={x:1, y:2, z:[3], d:4, e:[{j:3, k:4, m:['a', 'b']}]};
var b={x:1, y:2, z:[3], d:44, e:[{j:3, k:4, m:['a'] }]};

it("compares a with b", function(){
discrepances.showAndThrow(a,b,{context:'this message'})
});
```

# Install
Expand Down
3 changes: 2 additions & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
environment:
matrix:
- nodejs_version: "0.12.7"
- nodejs_version: "0.12"
- nodejs_version: "4"
- nodejs_version: "6"
- nodejs_version: "8"
matrix:
fast_finish: true
install:
Expand Down
39 changes: 39 additions & 0 deletions examples/examples.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
var discrepances = require('..');

var a={x:1, y:2, z:[3], d:4, e:[{j:3, k:4, m:['a', 'b']}]};
var b={x:1, y:2, z:[3], d:44, e:[{j:3, k:4, m:['a'] }]};

var detectedDiscrepances = discrepances.nestedObject(a,b)
if(detectedDiscrepances){
console.dir(detectedDiscrepances, {depth:9});
}
/*
{
object:{
d:{ difference: -40, values: [ 4, 44 ] },
e:{
array:{
'0':{
object:{
m:{
array:{ length:{ difference: 1, values: [ 2, 1 ] } }
}
}
}
}
}
}
}
*/
var detectedDiscrepances = discrepances.flatten(a,b)
if(detectedDiscrepances){
console.log(detectedDiscrepances);
}
/*
{
'.d': { difference: -40, values: [ 4, 44 ] },
'.e[0].m[length]': { difference: 1, values: [ 2, 1 ] }
}
*/

console.log('x',{a:undefined, b:null});
5 changes: 2 additions & 3 deletions lib/discrepances.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,10 @@ function getClassOnlyForSomeOfBuiltIns(variable, opts) {
function timeStr(dt) { return datetime.ms(dt).toYmdHmsM().substr(11); }

function compareStrings(a,b) {
var pos=-1, i, j;
var pos=0;
var rPos=0;
while(pos<Math.min(a.length,b.length) && a[pos]==b[pos]) pos++;
while(rPos>pos-Math.min(a.length,b.length) && a[a.length+rPos-1] == b[b.length+rPos-1]) rPos--;
while(pos<Math.min(a.length,b.length) && a[pos]==b[pos]){ pos++; }
while(rPos>pos-Math.min(a.length,b.length) && a[a.length+rPos-1] == b[b.length+rPos-1]){ rPos--; }
var answer={
differences:[a.substring(pos, a.length+rPos), b.substring(pos, b.length+rPos), {pos:pos}],
values:[a,b]
Expand Down
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "discrepances",
"description": "show discrepances in several flavors",
"version": "0.2.1",
"version": "0.2.2",
"author": "Codenautas <codenautas@googlegroups.com>",
"repository": "codenautas/discrepances",
"license": "MIT",
Expand All @@ -18,7 +18,7 @@
"main": "lib/discrepances.js",
"files": ["lib"],
"dependencies": {
"best-globals": "~0.10.0"
"best-globals": "~0.10.1"
},
"devDependencies": {
"body-parser": "~1.17.2",
Expand All @@ -28,7 +28,7 @@
"express-session": "~1.15.5",
"express-useragent": "~1.0.7",
"istanbul": "~0.4.5",
"karma": "~1.7.0",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage": "~1.1.1",
"karma-coverage-html-index-reporter": "~1.0.2",
Expand All @@ -43,7 +43,7 @@
"phantomjs-prebuilt": "~2.1.15",

"audit-copy": "~0.0.5",
"json4all": "~0.3.6",
"json4all": "~0.3.7",
"require-bro": "~0.1.5"
},
"engines": {
Expand All @@ -63,7 +63,7 @@
},
"qa-control": {
"package-version": "0.3.0",
"coverage": 90,
"coverage": 95,
"run-in": "both",
"stability": "extending",
"type": "lib"
Expand Down

0 comments on commit cd875e6

Please sign in to comment.