diff --git a/jquery-ajax-reviver-1.0.js b/jquery-ajax-reviver-1.1.js
similarity index 61%
rename from jquery-ajax-reviver-1.0.js
rename to jquery-ajax-reviver-1.1.js
index b5bf094..b905c5c 100644
--- a/jquery-ajax-reviver-1.0.js
+++ b/jquery-ajax-reviver-1.1.js
@@ -1,5 +1,5 @@
/*
-* jQuery Ajax Reviver Plugin - v1.0 - 06/13/2012
+* jQuery Ajax Reviver Plugin - v1.1 - 06/13/2012
*
* Copyright (c) 2012 "Quickredfox" Francois Lafortune
* Licensed under the same conditions as jQuery itself.
@@ -12,28 +12,42 @@
"use strict"
var revive
+ , cast
, add;
if( $.type( $.ajaxSettings.revivers ) !== 'array' )
$.ajaxSettings.revivers = [];
revive = function( data, revivers ) {
- if( $.type( data ) === 'array'){
- return data.reduce( function( revived, value, key ) {
- revived[ key ] = revive( revivers.reduce( function( value, reviver ) {
- return reviver.call( revived, key, value );
- }, value ) , revivers );
- return revived;
- }, data );
- }else if( $.type( data ) === 'object'){
- return Object.keys(data).reduce( function( revived, key ) {
- var value = data[key]
- revived[ key ] = revive( revivers.reduce( function( value, reviver ) {
- return reviver.call( revived, key, value );
- }, value ) , revivers );
- return revived;
- }, data );
- }else return json;
+ if( $.type( data ) === 'array'){
+ return data.reduce( function( revived, value, key ) {
+ revived[ key ] = revive( revivers.reduce( function( value, reviver ) {
+ return reviver.call( revived, key, value );
+ }, value ) , revivers );
+ return revived;
+ }, data );
+ }else if( $.type( data ) === 'object'){
+ return Object.keys(data).reduce( function( revived, key ) {
+ var value = data[key]
+ revived[ key ] = revive( revivers.reduce( function( value, reviver ) {
+ return reviver.call( revived, key, value );
+ }, value ) , revivers );
+ return revived;
+ }, data );
+ }else return json;
+ };
+
+ cast = function( ) {
+ var fns = []
+ , args = Array.prototype.slice.call( arguments );
+ for( var i =0; i< args.length; i++){
+ var current = args[i];
+ var next = args[i+1];
+ if( $.type( current ) === 'array' ){
+
+ };
+ };
+
};
add = function( collection, reviver, fn ) {
@@ -62,11 +76,11 @@
add( options.revivers, original.revivers )
return options.converters['text json'] = function( data ) {
if ($.type(data ) !== 'string') return null;
- else return JSON.parse( data, function( key, value ) {
+ else return JSON.parse.length === 2 ? JSON.parse( data, function( key, value ) {
return options.revivers.reduce( function( newvalue, reviver ) {
return reviver.call( data, key, newvalue );
}, value );
- } )
+ } ) : revive( JSON.parse(value), options.revivers );
};
}
});
diff --git a/test/index.html b/test/index.html
index a41db8f..e19fee4 100644
--- a/test/index.html
+++ b/test/index.html
@@ -8,7 +8,7 @@
-
+