dottie
Advanced tools
Comparing version 0.0.5 to 0.0.6-1
@@ -102,2 +102,4 @@ (function(undefined) { | ||
} | ||
} else { | ||
transformed[key] = transformed[key]; // Ensure that properties exist on the object, not just the prototype | ||
} | ||
@@ -104,0 +106,0 @@ } |
{ | ||
"name" : "dottie", | ||
"version" : "0.0.5", | ||
"devDependencies": { | ||
"buster": "*" | ||
}, | ||
"description" : "Object traversing/manipulation util", | ||
"author" : "Mick Hansen <mh@innofluence.com>", | ||
"repository" : {"type": "git", "url": "git://github.com/innofluence/dottie.js.git"}, | ||
"main" : "dottie.js", | ||
"scripts": { | ||
"test": "./node_modules/.bin/buster-test" | ||
} | ||
} | ||
"name": "dottie", | ||
"version": "0.0.6-1", | ||
"devDependencies": { | ||
"buster": "*" | ||
}, | ||
"description": "Object traversing/manipulation util", | ||
"author": "Mick Hansen <mh@innofluence.com>", | ||
"repository": { | ||
"type": "git", | ||
"url": "git://github.com/innofluence/dottie.js.git" | ||
}, | ||
"main": "dottie.js", | ||
"scripts": { | ||
"test": "./node_modules/.bin/buster-test" | ||
} | ||
} |
[![Build Status](https://secure.travis-ci.org/innofluence/dottie.js.png)](http://travis-ci.org/innofluence/dottie.js) | ||
## Install | ||
`npm install dottie` | ||
npm install dottie | ||
@@ -11,2 +11,3 @@ ## Usage | ||
Gets nested value, or undefined if unreachable. | ||
var values = { | ||
@@ -26,3 +27,3 @@ some: { | ||
`dottie.set(values, 'some.nested.value', someValue);` | ||
dottie.set(values, 'some.nested.value', someValue); | ||
@@ -29,0 +30,0 @@ ### Transform object |
var buster = require('buster'), | ||
Dot = require('../dot'); | ||
dottie = require('../dottie'); | ||
buster.spec.expose(); | ||
describe("Dot.transform", function () { | ||
it("should create a properly nested object from a basic dot notated set of keys", function () { | ||
describe("dottie.transform", function () { | ||
it("should create a properly nested object from a basic dottie notated set of keys", function () { | ||
var values = { | ||
@@ -15,3 +15,3 @@ 'user.name': 'John Doe', | ||
var transformed = Dot.transform(values); | ||
var transformed = dottie.transform(values); | ||
@@ -21,4 +21,4 @@ expect(transformed.user).toBeDefined(); | ||
expect(typeof transformed.user).toEqual('object'); | ||
expect(typeof transformed.user.location).toEqual('object'); | ||
expect(transformed.user).toBeObject(); | ||
expect(transformed.user.location).toBeObject(); | ||
@@ -29,3 +29,3 @@ expect(transformed.user.email).toEqual('jd@foobar.com'); | ||
it("should be able to handle a mixture of nested properties and dot notated set of keys", function () { | ||
it("should be able to handle a mixture of nested properties and dottie notated set of keys", function () { | ||
var values = { | ||
@@ -38,6 +38,6 @@ user: { | ||
'user.location.city': 'Zanzibar City', | ||
'project.title': 'Dot' | ||
'project.title': 'dottie' | ||
}; | ||
var transformed = Dot.transform(values); | ||
var transformed = dottie.transform(values); | ||
@@ -48,10 +48,30 @@ expect(transformed.user).toBeDefined(); | ||
expect(typeof transformed.user).toEqual('object'); | ||
expect(typeof transformed.user.location).toEqual('object'); | ||
expect(typeof transformed.project).toEqual('object'); | ||
expect(transformed.user).toBeObject(); | ||
expect(transformed.user.location).toBeObject(); | ||
expect(transformed.project).toBeObject(); | ||
expect(transformed.user.email).toEqual('jd@foobar.com'); | ||
expect(transformed.user.location.city).toEqual('Zanzibar City'); | ||
expect(transformed.project.title).toEqual('Dot'); | ||
expect(transformed.project.title).toEqual('dottie'); | ||
}); | ||
it("should be able to handle base level properties together with nested", function () { | ||
var values = { | ||
'customer.name': 'John Doe', | ||
'customer.age': 15, | ||
'client': 'Lolcat' | ||
}; | ||
var transformed = dottie.transform(values); | ||
expect(transformed.client).toBeDefined(); | ||
expect(transformed.hasOwnProperty('client')).toBeTruthy(); // Ensure that the property is actually on the object itself, not on the prototype. | ||
expect(transformed.customer).toBeDefined(); | ||
expect(transformed.customer).toBeObject(); | ||
expect(transformed.client).toEqual('Lolcat'); | ||
expect(transformed.customer.name).toEqual('John Doe'); | ||
expect(transformed.customer.age).toEqual(15); | ||
}); | ||
}); |
8675
221
49