json2-rails 1.1.0 → 1.15.05.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f6034d542f0472a656d48daf723899add57970f1
4
- data.tar.gz: 8384204950037f8acb2f6b1c4beb9ca83b6543f3
3
+ metadata.gz: 342143c03ca2a5931bfd0386a5cc13089026e1d3
4
+ data.tar.gz: 22a78b963952f4b218a6529bbd57326bdca7b3a1
5
5
  SHA512:
6
- metadata.gz: 43870c115c6a6d96f4f9cb58772b3d72223f422e827fe210fdd2e1a1539e313b9d75a9b3f6ff4350f62725da8ba7a9b4006c0e53b13277560d3e7b9f54cb2fc3
7
- data.tar.gz: 9fb5afae4765a62767beec10473a1fa7373d1e839beeba1bf10e5efeb17af1743dcf5bb9b7815248338a0d72323344213426596840230871787b1a03a8238d0a
6
+ metadata.gz: 8dc5b02f998119a6c0ebc9d231c305d389b0b722470f717ddf44f0ee22441faa40872e5954a0e702a8d740418021e35af4c7595eb046127bf401ec578e0b5963
7
+ data.tar.gz: 1ae7438a906cb9785073938b96e2b39b2e1024333a3aa4fabf23198bf9f544ef97c3a95cf7a69bc7fb41d90db7ad72cc014af4f93d38cc847b82af8b76e76d31
@@ -1,5 +1,5 @@
1
1
  module Json2
2
2
  module Rails
3
- VERSION = "1.1.0"
3
+ VERSION = "1.15.05.18"
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  cycle.js
3
- 2013-02-19
3
+ 2015-02-25
4
4
 
5
5
  Public Domain.
6
6
 
@@ -13,9 +13,10 @@
13
13
  NOT CONTROL.
14
14
  */
15
15
 
16
- /*jslint evil: true, regexp: true */
16
+ /*jslint eval, for */
17
17
 
18
- /*members $ref, apply, call, decycle, hasOwnProperty, length, prototype, push,
18
+ /*property
19
+ $ref, apply, call, decycle, hasOwnProperty, length, prototype, push,
19
20
  retrocycle, stringify, test, toString
20
21
  */
21
22
 
@@ -55,9 +56,9 @@ if (typeof JSON.decycle !== 'function') {
55
56
 
56
57
  if (typeof value === 'object' && value !== null &&
57
58
  !(value instanceof Boolean) &&
58
- !(value instanceof Date) &&
59
- !(value instanceof Number) &&
60
- !(value instanceof RegExp) &&
59
+ !(value instanceof Date) &&
60
+ !(value instanceof Number) &&
61
+ !(value instanceof RegExp) &&
61
62
  !(value instanceof String)) {
62
63
 
63
64
  // If the value is an object or array, look to see if we have already
@@ -90,7 +91,7 @@ if (typeof JSON.decycle !== 'function') {
90
91
  for (name in value) {
91
92
  if (Object.prototype.hasOwnProperty.call(value, name)) {
92
93
  nu[name] = derez(value[name],
93
- path + '[' + JSON.stringify(name) + ']');
94
+ path + '[' + JSON.stringify(name) + ']');
94
95
  }
95
96
  }
96
97
  }
@@ -125,8 +126,7 @@ if (typeof JSON.retrocycle !== 'function') {
125
126
  // return JSON.retrocycle(JSON.parse(s));
126
127
  // produces an array containing a single element which is the array itself.
127
128
 
128
- var px =
129
- /^\$(?:\[(?:\d+|\"(?:[^\\\"\u0000-\u001f]|\\([\\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*\")\])*$/;
129
+ var px = /^\$(?:\[(?:\d+|\"(?:[^\\\"\u0000-\u001f]|\\([\\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*\")\])*$/;
130
130
 
131
131
  (function rez(value) {
132
132
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  json2.js
3
- 2014-02-04
3
+ 2015-05-03
4
4
 
5
5
  Public Domain.
6
6
 
@@ -17,7 +17,9 @@
17
17
 
18
18
 
19
19
  This file creates a global JSON object containing two methods: stringify
20
- and parse.
20
+ and parse. This file is provides the ES5 JSON capability to ES3 systems.
21
+ If a project might run on IE8 or earlier, then this file should be included.
22
+ This file does nothing on ES5 systems.
21
23
 
22
24
  JSON.stringify(value, replacer, space)
23
25
  value any JavaScript value, usually an object or array.
@@ -48,7 +50,9 @@
48
50
  Date.prototype.toJSON = function (key) {
49
51
  function f(n) {
50
52
  // Format integers to have at least two digits.
51
- return n < 10 ? '0' + n : n;
53
+ return n < 10
54
+ ? '0' + n
55
+ : n;
52
56
  }
53
57
 
54
58
  return this.getUTCFullYear() + '-' +
@@ -94,8 +98,9 @@
94
98
  // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
95
99
 
96
100
  text = JSON.stringify([new Date()], function (key, value) {
97
- return this[key] instanceof Date ?
98
- 'Date(' + this[key] + ')' : value;
101
+ return this[key] instanceof Date
102
+ ? 'Date(' + this[key] + ')'
103
+ : value;
99
104
  });
100
105
  // text is '["Date(---current time---)"]'
101
106
 
@@ -146,10 +151,12 @@
146
151
  redistribute.
147
152
  */
148
153
 
149
- /*jslint evil: true, regexp: true */
154
+ /*jslint
155
+ eval, for, this
156
+ */
150
157
 
151
- /*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
152
- call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
158
+ /*property
159
+ JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
153
160
  getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
154
161
  lastIndex, length, parse, prototype, push, replace, slice, stringify,
155
162
  test, toJSON, toString, valueOf
@@ -165,10 +172,23 @@ if (typeof JSON !== 'object') {
165
172
 
166
173
  (function () {
167
174
  'use strict';
175
+
176
+ var rx_one = /^[\],:{}\s]*$/,
177
+ rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
178
+ rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
179
+ rx_four = /(?:^|:|,)(?:\s*\[)+/g,
180
+ rx_escapable = /[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
181
+ rx_dangerous = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
168
182
 
169
183
  function f(n) {
170
184
  // Format integers to have at least two digits.
171
- return n < 10 ? '0' + n : n;
185
+ return n < 10
186
+ ? '0' + n
187
+ : n;
188
+ }
189
+
190
+ function this_value() {
191
+ return this.valueOf();
172
192
  }
173
193
 
174
194
  if (typeof Date.prototype.toJSON !== 'function') {
@@ -176,25 +196,21 @@ if (typeof JSON !== 'object') {
176
196
  Date.prototype.toJSON = function () {
177
197
 
178
198
  return isFinite(this.valueOf())
179
- ? this.getUTCFullYear() + '-' +
180
- f(this.getUTCMonth() + 1) + '-' +
181
- f(this.getUTCDate()) + 'T' +
182
- f(this.getUTCHours()) + ':' +
183
- f(this.getUTCMinutes()) + ':' +
184
- f(this.getUTCSeconds()) + 'Z'
199
+ ? this.getUTCFullYear() + '-' +
200
+ f(this.getUTCMonth() + 1) + '-' +
201
+ f(this.getUTCDate()) + 'T' +
202
+ f(this.getUTCHours()) + ':' +
203
+ f(this.getUTCMinutes()) + ':' +
204
+ f(this.getUTCSeconds()) + 'Z'
185
205
  : null;
186
206
  };
187
207
 
188
- String.prototype.toJSON =
189
- Number.prototype.toJSON =
190
- Boolean.prototype.toJSON = function () {
191
- return this.valueOf();
192
- };
208
+ Boolean.prototype.toJSON = this_value;
209
+ Number.prototype.toJSON = this_value;
210
+ String.prototype.toJSON = this_value;
193
211
  }
194
212
 
195
- var cx,
196
- escapable,
197
- gap,
213
+ var gap,
198
214
  indent,
199
215
  meta,
200
216
  rep;
@@ -207,13 +223,15 @@ if (typeof JSON !== 'object') {
207
223
  // Otherwise we must also replace the offending characters with safe escape
208
224
  // sequences.
209
225
 
210
- escapable.lastIndex = 0;
211
- return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
212
- var c = meta[a];
213
- return typeof c === 'string'
214
- ? c
215
- : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
216
- }) + '"' : '"' + string + '"';
226
+ rx_escapable.lastIndex = 0;
227
+ return rx_escapable.test(string)
228
+ ? '"' + string.replace(rx_escapable, function (a) {
229
+ var c = meta[a];
230
+ return typeof c === 'string'
231
+ ? c
232
+ : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
233
+ }) + '"'
234
+ : '"' + string + '"';
217
235
  }
218
236
 
219
237
 
@@ -253,7 +271,9 @@ if (typeof JSON !== 'object') {
253
271
 
254
272
  // JSON numbers must be finite. Encode non-finite numbers as null.
255
273
 
256
- return isFinite(value) ? String(value) : 'null';
274
+ return isFinite(value)
275
+ ? String(value)
276
+ : 'null';
257
277
 
258
278
  case 'boolean':
259
279
  case 'null':
@@ -299,8 +319,8 @@ if (typeof JSON !== 'object') {
299
319
  v = partial.length === 0
300
320
  ? '[]'
301
321
  : gap
302
- ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
303
- : '[' + partial.join(',') + ']';
322
+ ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
323
+ : '[' + partial.join(',') + ']';
304
324
  gap = mind;
305
325
  return v;
306
326
  }
@@ -314,7 +334,11 @@ if (typeof JSON !== 'object') {
314
334
  k = rep[i];
315
335
  v = str(k, value);
316
336
  if (v) {
317
- partial.push(quote(k) + (gap ? ': ' : ':') + v);
337
+ partial.push(quote(k) + (
338
+ gap
339
+ ? ': '
340
+ : ':'
341
+ ) + v);
318
342
  }
319
343
  }
320
344
  }
@@ -326,7 +350,11 @@ if (typeof JSON !== 'object') {
326
350
  if (Object.prototype.hasOwnProperty.call(value, k)) {
327
351
  v = str(k, value);
328
352
  if (v) {
329
- partial.push(quote(k) + (gap ? ': ' : ':') + v);
353
+ partial.push(quote(k) + (
354
+ gap
355
+ ? ': '
356
+ : ':'
357
+ ) + v);
330
358
  }
331
359
  }
332
360
  }
@@ -338,8 +366,8 @@ if (typeof JSON !== 'object') {
338
366
  v = partial.length === 0
339
367
  ? '{}'
340
368
  : gap
341
- ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
342
- : '{' + partial.join(',') + '}';
369
+ ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
370
+ : '{' + partial.join(',') + '}';
343
371
  gap = mind;
344
372
  return v;
345
373
  }
@@ -348,14 +376,13 @@ if (typeof JSON !== 'object') {
348
376
  // If the JSON object does not yet have a stringify method, give it one.
349
377
 
350
378
  if (typeof JSON.stringify !== 'function') {
351
- escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
352
379
  meta = { // table of character substitutions
353
380
  '\b': '\\b',
354
381
  '\t': '\\t',
355
382
  '\n': '\\n',
356
383
  '\f': '\\f',
357
384
  '\r': '\\r',
358
- '"' : '\\"',
385
+ '"': '\\"',
359
386
  '\\': '\\\\'
360
387
  };
361
388
  JSON.stringify = function (value, replacer, space) {
@@ -405,7 +432,6 @@ if (typeof JSON !== 'object') {
405
432
  // If the JSON object does not yet have a parse method, give it one.
406
433
 
407
434
  if (typeof JSON.parse !== 'function') {
408
- cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
409
435
  JSON.parse = function (text, reviver) {
410
436
 
411
437
  // The parse method takes a text and an optional reviver function, and returns
@@ -440,11 +466,11 @@ if (typeof JSON !== 'object') {
440
466
  // incorrectly, either silently deleting them, or treating them as line endings.
441
467
 
442
468
  text = String(text);
443
- cx.lastIndex = 0;
444
- if (cx.test(text)) {
445
- text = text.replace(cx, function (a) {
469
+ rx_dangerous.lastIndex = 0;
470
+ if (rx_dangerous.test(text)) {
471
+ text = text.replace(rx_dangerous, function (a) {
446
472
  return '\\u' +
447
- ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
473
+ ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
448
474
  });
449
475
  }
450
476
 
@@ -461,10 +487,14 @@ if (typeof JSON !== 'object') {
461
487
  // we look to see that the remaining characters are only whitespace or ']' or
462
488
  // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
463
489
 
464
- if (/^[\],:{}\s]*$/
465
- .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
466
- .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
467
- .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
490
+ if (
491
+ rx_one.test(
492
+ text
493
+ .replace(rx_two, '@')
494
+ .replace(rx_three, ']')
495
+ .replace(rx_four, '')
496
+ )
497
+ ) {
468
498
 
469
499
  // In the third stage we use the eval function to compile the text into a
470
500
  // JavaScript structure. The '{' operator is subject to a syntactic ambiguity
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  json_parse.js
3
- 2012-06-20
3
+ 2015-05-02
4
4
 
5
5
  Public Domain.
6
6
 
@@ -46,8 +46,11 @@
46
46
  NOT CONTROL.
47
47
  */
48
48
 
49
- /*members "", "\"", "\/", "\\", at, b, call, charAt, f, fromCharCode,
50
- hasOwnProperty, message, n, name, prototype, push, r, t, text
49
+ /*jslint for */
50
+
51
+ /*property
52
+ at, b, call, charAt, f, fromCharCode, hasOwnProperty, message, n, name,
53
+ prototype, push, r, t, text
51
54
  */
52
55
 
53
56
  var json_parse = (function () {
@@ -64,14 +67,14 @@ var json_parse = (function () {
64
67
  var at, // The index of the current character
65
68
  ch, // The current character
66
69
  escapee = {
67
- '"': '"',
70
+ '"': '"',
68
71
  '\\': '\\',
69
- '/': '/',
70
- b: '\b',
71
- f: '\f',
72
- n: '\n',
73
- r: '\r',
74
- t: '\t'
72
+ '/': '/',
73
+ b: '\b',
74
+ f: '\f',
75
+ n: '\n',
76
+ r: '\r',
77
+ t: '\t'
75
78
  },
76
79
  text,
77
80
 
@@ -80,10 +83,10 @@ var json_parse = (function () {
80
83
  // Call error when something is wrong.
81
84
 
82
85
  throw {
83
- name: 'SyntaxError',
86
+ name: 'SyntaxError',
84
87
  message: m,
85
- at: at,
86
- text: text
88
+ at: at,
89
+ text: text
87
90
  };
88
91
  },
89
92
 
@@ -302,7 +305,9 @@ var json_parse = (function () {
302
305
  case '-':
303
306
  return number();
304
307
  default:
305
- return ch >= '0' && ch <= '9' ? number() : word();
308
+ return ch >= '0' && ch <= '9'
309
+ ? number()
310
+ : word();
306
311
  }
307
312
  };
308
313
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  json_parse_state.js
3
- 2013-05-26
3
+ 2015-05-02
4
4
 
5
5
  Public Domain.
6
6
 
@@ -46,13 +46,13 @@
46
46
  NOT CONTROL.
47
47
  */
48
48
 
49
- /*jslint regexp: true, unparam: true */
49
+ /*jslint for */
50
50
 
51
- /*members "", "\"", ",", "\/", ":", "[", "\\", "]", acomma, avalue, b,
52
- call, colon, container, exec, f, false, firstavalue, firstokey,
53
- fromCharCode, go, hasOwnProperty, key, length, n, null, ocomma, okey,
54
- ovalue, pop, prototype, push, r, replace, slice, state, t, test, true,
55
- value, "{", "}"
51
+ /*property
52
+ acomma, avalue, b, call, colon, container, exec, f, false, firstavalue,
53
+ firstokey, fromCharCode, go, hasOwnProperty, key, length, n, null, ocomma,
54
+ okey, ovalue, pop, prototype, push, r, replace, slice, state, t, test,
55
+ true
56
56
  */
57
57
 
58
58
  var json_parse = (function () {
@@ -287,8 +287,10 @@ var json_parse = (function () {
287
287
 
288
288
  // Remove and replace any backslash escapement.
289
289
 
290
- return text.replace(/\\(?:u(.{4})|([^u]))/g, function (a, b, c) {
291
- return b ? String.fromCharCode(parseInt(b, 16)) : escapes[c];
290
+ return text.replace(/\\(?:u(.{4})|([^u]))/g, function (ignore, b, c) {
291
+ return b
292
+ ? String.fromCharCode(parseInt(b, 16))
293
+ : escapes[c];
292
294
  });
293
295
  }
294
296
 
@@ -297,8 +299,8 @@ var json_parse = (function () {
297
299
  // A regular expression is used to extract tokens from the JSON text.
298
300
  // The extraction process is cautious.
299
301
 
300
- var r, // The result of the exec method.
301
- tx = /^[\x20\t\n\r]*(?:([,:\[\]{}]|true|false|null)|(-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)|"((?:[^\r\n\t\\\"]|\\(?:["\\\/trnfb]|u[0-9a-fA-F]{4}))*)")/;
302
+ var result,
303
+ tx = /^[\u0020\t\n\r]*(?:([,:\[\]{}]|true|false|null)|(-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)|"((?:[^\r\n\t\\\"]|\\(?:["\\\/trnfb]|u[0-9a-fA-F]{4}))*)")/;
302
304
 
303
305
  // Set the starting state.
304
306
 
@@ -315,37 +317,37 @@ var json_parse = (function () {
315
317
 
316
318
  // For each token...
317
319
 
318
- for (;;) {
319
- r = tx.exec(source);
320
- if (!r) {
320
+ while (true) {
321
+ result = tx.exec(source);
322
+ if (!result) {
321
323
  break;
322
324
  }
323
325
 
324
- // r is the result array from matching the tokenizing regular expression.
325
- // r[0] contains everything that matched, including any initial whitespace.
326
- // r[1] contains any punctuation that was matched, or true, false, or null.
327
- // r[2] contains a matched number, still in string form.
328
- // r[3] contains a matched string, without quotes but with escapement.
326
+ // result is the result array from matching the tokenizing regular expression.
327
+ // result[0] contains everything that matched, including any initial whitespace.
328
+ // result[1] contains any punctuation that was matched, or true, false, or null.
329
+ // result[2] contains a matched number, still in string form.
330
+ // result[3] contains a matched string, without quotes but with escapement.
329
331
 
330
- if (r[1]) {
332
+ if (result[1]) {
331
333
 
332
334
  // Token: Execute the action for this state and token.
333
335
 
334
- action[r[1]][state]();
336
+ action[result[1]][state]();
335
337
 
336
- } else if (r[2]) {
338
+ } else if (result[2]) {
337
339
 
338
340
  // Number token: Convert the number string into a number value and execute
339
341
  // the action for this state and number.
340
342
 
341
- value = +r[2];
343
+ value = +result[2];
342
344
  number[state]();
343
345
  } else {
344
346
 
345
347
  // String token: Replace the escapement sequences and execute the action for
346
348
  // this state and string.
347
349
 
348
- value = debackslashify(r[3]);
350
+ value = debackslashify(result[3]);
349
351
  string[state]();
350
352
  }
351
353
 
@@ -353,7 +355,7 @@ var json_parse = (function () {
353
355
  // are tokens. This is a slow process, but it allows the use of ^ matching,
354
356
  // which assures that no illegal tokens slip through.
355
357
 
356
- source = source.slice(r[0].length);
358
+ source = source.slice(result[0].length);
357
359
  }
358
360
 
359
361
  // If we find a state/token combination that is illegal, then the action will
@@ -367,8 +369,10 @@ var json_parse = (function () {
367
369
  // remaining source contains anything except whitespace, then we did not have
368
370
  //a well-formed JSON text.
369
371
 
370
- if (state !== 'ok' || /[^\x20\t\n\r]/.test(source)) {
371
- throw state instanceof SyntaxError ? state : new SyntaxError('JSON');
372
+ if (state !== 'ok' || (/[^\u0020\t\n\r]/.test(source))) {
373
+ throw state instanceof SyntaxError
374
+ ? state
375
+ : new SyntaxError('JSON');
372
376
  }
373
377
 
374
378
  // If there is a reviver function, we recursively walk the new structure,
@@ -377,21 +381,23 @@ var json_parse = (function () {
377
381
  // value in an empty key. If there is not a reviver function, we simply return
378
382
  // that value.
379
383
 
380
- return typeof reviver === 'function' ? (function walk(holder, key) {
381
- var k, v, value = holder[key];
382
- if (value && typeof value === 'object') {
383
- for (k in value) {
384
- if (Object.prototype.hasOwnProperty.call(value, k)) {
385
- v = walk(value, k);
386
- if (v !== undefined) {
387
- value[k] = v;
388
- } else {
389
- delete value[k];
384
+ return typeof reviver === 'function'
385
+ ? (function walk(holder, key) {
386
+ var k, v, value = holder[key];
387
+ if (value && typeof value === 'object') {
388
+ for (k in value) {
389
+ if (Object.prototype.hasOwnProperty.call(value, k)) {
390
+ v = walk(value, k);
391
+ if (v !== undefined) {
392
+ value[k] = v;
393
+ } else {
394
+ delete value[k];
395
+ }
390
396
  }
391
397
  }
392
398
  }
393
- }
394
- return reviver.call(holder, key, value);
395
- }({'': value}, '')) : value;
399
+ return reviver.call(holder, key, value);
400
+ }({'': value}, ''))
401
+ : value;
396
402
  };
397
403
  }());
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json2-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.15.05.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maksim Berjoza
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-04 00:00:00.000000000 Z
11
+ date: 2015-05-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ''
14
14
  email:
@@ -46,7 +46,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
46
46
  version: '0'
47
47
  requirements: []
48
48
  rubyforge_project:
49
- rubygems_version: 2.2.2
49
+ rubygems_version: 2.4.6
50
50
  signing_key:
51
51
  specification_version: 4
52
52
  summary: Crockford's json2, json with Rails asset pipeline