stringjs-rails 1.5.1 → 1.6.0

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.
@@ -5,35 +5,57 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
5
5
  !(function() {
6
6
  "use strict";
7
7
 
8
- var VERSION = '1.5.1';
8
+ var VERSION = '1.6.0';
9
9
 
10
10
  var ENTITIES = {};
11
11
 
12
- function S(s) {
12
+ //******************************************************************************
13
+ // Added an initialize function which is essentially the code from the S
14
+ // constructor. Now, the S constructor calls this and a new method named
15
+ // setValue calls it as well. The setValue function allows constructors for
16
+ // modules that extend string.js to set the initial value of an object without
17
+ // knowing the internal workings of string.js.
18
+ //
19
+ // Also, all methods which return a new S object now call:
20
+ //
21
+ // return new this.constructor(s);
22
+ //
23
+ // instead of:
24
+ //
25
+ // return new S(s);
26
+ //
27
+ // This allows extended objects to keep their proper instanceOf and constructor.
28
+ //******************************************************************************
29
+
30
+ function initialize (object, s) {
13
31
  if (s !== null && s !== undefined) {
14
32
  if (typeof s === 'string')
15
- this.s = s;
33
+ object.s = s;
16
34
  else
17
- this.s = s.toString();
35
+ object.s = s.toString();
18
36
  } else {
19
- this.s = s; //null or undefined
37
+ object.s = s; //null or undefined
20
38
  }
21
39
 
22
- this.orig = s; //original object, currently only used by toCSV() and toBoolean()
40
+ object.orig = s; //original object, currently only used by toCSV() and toBoolean()
23
41
 
24
42
  if (s !== null && s !== undefined) {
25
- if (this.__defineGetter__) {
26
- this.__defineGetter__('length', function() {
27
- return this.s.length;
43
+ if (object.__defineGetter__) {
44
+ object.__defineGetter__('length', function() {
45
+ return object.s.length;
28
46
  })
29
47
  } else {
30
- this.length = s.length;
48
+ object.length = s.length;
31
49
  }
32
50
  } else {
33
- this.length = -1;
51
+ object.length = -1;
34
52
  }
35
53
  }
36
54
 
55
+ function S(s) {
56
+ initialize(this, s);
57
+ }
58
+
37
59
  var __nsp = String.prototype;
38
60
  var __sp = S.prototype = {
39
61
 
@@ -42,7 +64,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
42
64
  var startPos = s.indexOf(left);
43
65
  var endPos = s.indexOf(right);
44
66
  var start = startPos + left.length;
45
- return new S(endPos > startPos ? s.slice(start, endPos) : "");
67
+ return new this.constructor(endPos > startPos ? s.slice(start, endPos) : "");
46
68
  },
47
69
 
48
70
  //# modified slightly from https://github.com/epeli/underscore.string
@@ -50,11 +72,11 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
50
72
  var s = this.trim().s.replace(/(\-|_|\s)+(.)?/g, function(mathc, sep, c) {
51
73
  return (c ? c.toUpperCase() : '');
52
74
  });
53
- return new S(s);
75
+ return new this.constructor(s);
54
76
  },
55
77
 
56
78
  capitalize: function() {
57
- return new S(this.s.substr(0, 1).toUpperCase() + this.s.substring(1).toLowerCase());
79
+ return new this.constructor(this.s.substr(0, 1).toUpperCase() + this.s.substring(1).toLowerCase());
58
80
  },
59
81
 
60
82
  charAt: function(index) {
@@ -65,7 +87,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
65
87
  var s = this.s;
66
88
  if (s.indexOf(prefix) === 0) {
67
89
  s = s.slice(prefix.length);
68
- return new S(s);
90
+ return new this.constructor(s);
69
91
  } else {
70
92
  return this;
71
93
  }
@@ -75,7 +97,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
75
97
  if (this.endsWith(suffix)) {
76
98
  var s = this.s;
77
99
  s = s.slice(0, s.length - suffix.length);
78
- return new S(s);
100
+ return new this.constructor(s);
79
101
  } else {
80
102
  return this;
81
103
  }
@@ -84,7 +106,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
84
106
  //#thanks Google
85
107
  collapseWhitespace: function() {
86
108
  var s = this.s.replace(/[\s\xa0]+/g, ' ').replace(/^\s+|\s+$/g, '');
87
- return new S(s);
109
+ return new this.constructor(s);
88
110
  },
89
111
 
90
112
  contains: function(ss) {
@@ -106,7 +128,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
106
128
  //#modified from https://github.com/epeli/underscore.string
107
129
  dasherize: function() {
108
130
  var s = this.trim().s.replace(/[_\s]+/g, '-').replace(/([A-Z])/g, '-$1').replace(/-+/g, '-').toLowerCase();
109
- return new S(s);
131
+ return new this.constructor(s);
110
132
  },
111
133
 
112
134
  decodeHtmlEntities: function() { //https://github.com/substack/node-ent/blob/master/index.js
@@ -132,7 +154,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
132
154
  }
133
155
  })
134
156
 
135
- return new S(s);
157
+ return new this.constructor(s);
136
158
  },
137
159
 
138
160
  endsWith: function(suffix) {
@@ -141,7 +163,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
141
163
  },
142
164
 
143
165
  escapeHTML: function() { //from underscore.string
144
- return new S(this.s.replace(/[&<>"']/g, function(m){ return '&' + reversedEscapeChars[m] + ';'; }));
166
+ return new this.constructor(this.s.replace(/[&<>"']/g, function(m){ return '&' + reversedEscapeChars[m] + ';'; }));
145
167
  },
146
168
 
147
169
  ensureLeft: function(prefix) {
@@ -149,7 +171,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
149
171
  if (s.indexOf(prefix) === 0) {
150
172
  return this;
151
173
  } else {
152
- return new S(prefix + s);
174
+ return new this.constructor(prefix + s);
153
175
  }
154
176
  },
155
177
 
@@ -158,15 +180,15 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
158
180
  if (this.endsWith(suffix)) {
159
181
  return this;
160
182
  } else {
161
- return new S(s + suffix);
183
+ return new this.constructor(s + suffix);
162
184
  }
163
185
  },
164
186
 
165
187
  humanize: function() { //modified from underscore.string
166
188
  if (this.s === null || this.s === undefined)
167
- return new S('')
189
+ return new this.constructor('')
168
190
  var s = this.underscore().replace(/_id$/,'').replace(/_/g, ' ').trim().capitalize()
169
- return new S(s)
191
+ return new this.constructor(s)
170
192
  },
171
193
 
172
194
  isAlpha: function() {
@@ -196,7 +218,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
196
218
  left: function(N) {
197
219
  if (N >= 0) {
198
220
  var s = this.s.substr(0, N);
199
- return new S(s);
221
+ return new this.constructor(s);
200
222
  } else {
201
223
  return this.right(-N);
202
224
  }
@@ -208,23 +230,23 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
208
230
 
209
231
  pad: function(len, ch) { //https://github.com/component/pad
210
232
  ch = ch || ' ';
211
- if (this.s.length >= len) return new S(this.s);
233
+ if (this.s.length >= len) return new this.constructor(this.s);
212
234
  len = len - this.s.length;
213
235
  var left = Array(Math.ceil(len / 2) + 1).join(ch);
214
236
  var right = Array(Math.floor(len / 2) + 1).join(ch);
215
- return new S(left + this.s + right);
237
+ return new this.constructor(left + this.s + right);
216
238
  },
217
239
 
218
240
  padLeft: function(len, ch) { //https://github.com/component/pad
219
241
  ch = ch || ' ';
220
- if (this.s.length >= len) return new S(this.s);
221
- return new S(Array(len - this.s.length + 1).join(ch) + this.s);
242
+ if (this.s.length >= len) return new this.constructor(this.s);
243
+ return new this.constructor(Array(len - this.s.length + 1).join(ch) + this.s);
222
244
  },
223
245
 
224
246
  padRight: function(len, ch) { //https://github.com/component/pad
225
247
  ch = ch || ' ';
226
- if (this.s.length >= len) return new S(this.s);
227
- return new S(this.s + Array(len - this.s.length + 1).join(ch));
248
+ if (this.s.length >= len) return new this.constructor(this.s);
249
+ return new this.constructor(this.s + Array(len - this.s.length + 1).join(ch));
228
250
  },
229
251
 
230
252
  parseCSV: function(delimiter, qualifier, escape, lineDelimiter) { //try to parse no matter what
@@ -293,23 +315,28 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
293
315
  replaceAll: function(ss, r) {
294
316
  //var s = this.s.replace(new RegExp(ss, 'g'), r);
295
317
  var s = this.s.split(ss).join(r)
296
- return new S(s);
318
+ return new this.constructor(s);
297
319
  },
298
320
 
299
321
  right: function(N) {
300
322
  if (N >= 0) {
301
323
  var s = this.s.substr(this.s.length - N, N);
302
- return new S(s);
324
+ return new this.constructor(s);
303
325
  } else {
304
326
  return this.left(-N);
305
327
  }
306
328
  },
307
329
 
330
+ setValue: function (s) {
331
+ initialize(this, s);
332
+ return this;
333
+ },
334
+
308
335
  slugify: function() {
309
336
  var sl = (new S(this.s.replace(/[^\w\s-]/g, '').toLowerCase())).dasherize().s;
310
337
  if (sl.charAt(0) === '-')
311
338
  sl = sl.substr(1);
312
- return new S(sl);
339
+ return new this.constructor(sl);
313
340
  },
314
341
 
315
342
  startsWith: function(prefix) {
@@ -317,8 +344,8 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
317
344
  },
318
345
 
319
346
  stripPunctuation: function() {
320
- //return new S(this.s.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()]/g,""));
321
- return new S(this.s.replace(/[^\w\s]|_/g, "").replace(/\s+/g, " "));
347
+ //return new this.constructor(this.s.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()]/g,""));
348
+ return new this.constructor(this.s.replace(/[^\w\s]|_/g, "").replace(/\s+/g, " "));
322
349
  },
323
350
 
324
351
  stripTags: function() { //from sugar.js
@@ -326,7 +353,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
326
353
  multiArgs(args, function(tag) {
327
354
  s = s.replace(RegExp('<\/?' + tag + '[^<>]*>', 'gi'), '');
328
355
  });
329
- return new S(s);
356
+ return new this.constructor(s);
330
357
  },
331
358
 
332
359
  template: function(values, opening, closing) {
@@ -342,11 +369,11 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
342
369
  if (typeof values[key] != 'undefined')
343
370
  s = s.replace(match, values[key]);
344
371
  });
345
- return new S(s);
372
+ return new this.constructor(s);
346
373
  },
347
374
 
348
375
  times: function(n) {
349
- return new S(new Array(n + 1).join(this.s));
376
+ return new this.constructor(new Array(n + 1).join(this.s));
350
377
  },
351
378
 
352
379
  toBoolean: function() {
@@ -376,7 +403,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
376
403
  s = this.s.replace(/(^\s*|\s*$)/g, '')
377
404
  else
378
405
  s = this.s.trim()
379
- return new S(s);
406
+ return new this.constructor(s);
380
407
  },
381
408
 
382
409
  trimLeft: function() {
@@ -385,7 +412,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
385
412
  s = this.s.trimLeft();
386
413
  else
387
414
  s = this.s.replace(/(^\s*)/g, '');
388
- return new S(s);
415
+ return new this.constructor(s);
389
416
  },
390
417
 
391
418
  trimRight: function() {
@@ -394,7 +421,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
394
421
  s = this.s.trimRight();
395
422
  else
396
423
  s = this.s.replace(/\s+$/, '');
397
- return new S(s);
424
+ return new this.constructor(s);
398
425
  },
399
426
 
400
427
  truncate: function(length, pruneStr) { //from underscore.string, author: github.com/rwz
@@ -403,7 +430,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
403
430
  length = ~~length;
404
431
  pruneStr = pruneStr || '...';
405
432
 
406
- if (str.length <= length) return new S(str);
433
+ if (str.length <= length) return new this.constructor(str);
407
434
 
408
435
  var tmpl = function(c){ return c.toUpperCase() !== c.toLowerCase() ? 'A' : ' '; },
409
436
  template = str.slice(0, length+1).replace(/.(?=\W*\w*$)/g, tmpl); // 'Hello, world' -> 'HellAA AAAAA'
@@ -478,7 +505,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
478
505
  //chop last delim
479
506
  //console.log(buildString.length)
480
507
  buildString.length = buildString.length - 1;
481
- return new S(buildString.join(''));
508
+ return new this.constructor(buildString.join(''));
482
509
  },
483
510
 
484
511
  toString: function() {
@@ -491,11 +518,11 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
491
518
  if ((new S(this.s.charAt(0))).isUpper()) {
492
519
  s = '_' + s;
493
520
  }
494
- return new S(s);
521
+ return new this.constructor(s);
495
522
  },
496
523
 
497
524
  unescapeHTML: function() { //from underscore.string
498
- return new S(this.s.replace(/\&([^;]+);/g, function(entity, entityCode){
525
+ return new this.constructor(this.s.replace(/\&([^;]+);/g, function(entity, entityCode){
499
526
  var match;
500
527
 
501
528
  if (entityCode in escapeChars) {
@@ -553,7 +580,7 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
553
580
  if (nativeProperties[name] === 'string') {
554
581
  __sp[name] = function() {
555
582
  //console.log(name)
556
- return new S(stringProp.apply(this, arguments));
583
+ return new this.constructor(stringProp.apply(this, arguments));
557
584
  }
558
585
  } else {
559
586
  __sp[name] = stringProp;
@@ -575,6 +602,14 @@ string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
575
602
  __sp.decodeHTMLEntities = __sp.decodeHtmlEntities //ensure consistent casing scheme of 'HTML'
576
603
 
577
604
 
605
+ //******************************************************************************
606
+ // Set the constructor. Without this, string.js objects are instances of
607
+ // Object instead of S.
608
+ //******************************************************************************
609
+
610
+ __sp.constructor = S;
611
+
612
+
578
613
  /*************************************
579
614
  /* Private Functions
580
615
  /*************************************/
@@ -1,3 +1,3 @@
1
1
  /*
2
2
  string.js - Copyright (C) 2012-2013, JP Richardson <jprichardson@gmail.com>
3
- */!function(){"use strict";function n(e){e!==null&&e!==undefined?typeof e=="string"?this.s=e:this.s=e.toString():this.s=e,this.orig=e,e!==null&&e!==undefined?this.__defineGetter__?this.__defineGetter__("length",function(){return this.s.length}):this.length=e.length:this.length=-1}function o(){for(var e in i)(function(e){var t=i[e];r.hasOwnProperty(e)||(s.push(e),r[e]=function(){return String.prototype.s=this,t.apply(this,arguments)})})(e)}function u(){for(var e=0;e<s.length;++e)delete String.prototype[s[e]];s.length=0}function l(){var e=c(),t={};for(var n=0;n<e.length;++n){var i=e[n],s=r[i];try{var o=typeof s.apply("teststring",[]);t[i]=o}catch(u){}}return t}function c(){var e=[];if(Object.getOwnPropertyNames)return e=Object.getOwnPropertyNames(r),e.splice(e.indexOf("valueOf"),1),e.splice(e.indexOf("toString"),1),e;var t={},n=[];for(var i in String.prototype)t[i]=i;for(var i in Object.prototype)delete t[i];for(var i in t)e.push(i);return e}function h(e){return new n(e)}function p(e,t){var n=[],r;for(r=0;r<e.length;r++)n.push(e[r]),t&&t.call(e,e[r],r);return n}var e="1.5.1",t={},r=String.prototype,i=n.prototype={between:function(e,t){var r=this.s,i=r.indexOf(e),s=r.indexOf(t),o=i+e.length;return new n(s>i?r.slice(o,s):"")},camelize:function(){var e=this.trim().s.replace(/(\-|_|\s)+(.)?/g,function(e,t,n){return n?n.toUpperCase():""});return new n(e)},capitalize:function(){return new n(this.s.substr(0,1).toUpperCase()+this.s.substring(1).toLowerCase())},charAt:function(e){return this.s.charAt(e)},chompLeft:function(e){var t=this.s;return t.indexOf(e)===0?(t=t.slice(e.length),new n(t)):this},chompRight:function(e){if(this.endsWith(e)){var t=this.s;return t=t.slice(0,t.length-e.length),new n(t)}return this},collapseWhitespace:function(){var e=this.s.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"");return new n(e)},contains:function(e){return this.s.indexOf(e)>=0},count:function(e){var t=0,n=this.s.indexOf(e);while(n>=0)t+=1,n=this.s.indexOf(e,n+1);return t},dasherize:function(){var e=this.trim().s.replace(/[_\s]+/g,"-").replace(/([A-Z])/g,"-$1").replace(/-+/g,"-").toLowerCase();return new n(e)},decodeHtmlEntities:function(){var e=this.s;return e=e.replace(/&#(\d+);?/g,function(e,t){return String.fromCharCode(t)}).replace(/&#[xX]([A-Fa-f0-9]+);?/g,function(e,t){return String.fromCharCode(parseInt(t,16))}).replace(/&([^;\W]+;?)/g,function(e,n){var r=n.replace(/;$/,""),i=t[n]||n.match(/;$/)&&t[r];return typeof i=="number"?String.fromCharCode(i):typeof i=="string"?i:e}),new n(e)},endsWith:function(e){var t=this.s.length-e.length;return t>=0&&this.s.indexOf(e,t)===t},escapeHTML:function(){return new n(this.s.replace(/[&<>"']/g,function(e){return"&"+v[e]+";"}))},ensureLeft:function(e){var t=this.s;return t.indexOf(e)===0?this:new n(e+t)},ensureRight:function(e){var t=this.s;return this.endsWith(e)?this:new n(t+e)},humanize:function(){if(this.s===null||this.s===undefined)return new n("");var e=this.underscore().replace(/_id$/,"").replace(/_/g," ").trim().capitalize();return new n(e)},isAlpha:function(){return!/[^a-z\xC0-\xFF]/.test(this.s.toLowerCase())},isAlphaNumeric:function(){return!/[^0-9a-z\xC0-\xFF]/.test(this.s.toLowerCase())},isEmpty:function(){return this.s===null||this.s===undefined?!0:/^[\s\xa0]*$/.test(this.s)},isLower:function(){return this.isAlpha()&&this.s.toLowerCase()===this.s},isNumeric:function(){return!/[^0-9]/.test(this.s)},isUpper:function(){return this.isAlpha()&&this.s.toUpperCase()===this.s},left:function(e){if(e>=0){var t=this.s.substr(0,e);return new n(t)}return this.right(-e)},lines:function(){return this.replaceAll("\r\n","\n").s.split("\n")},pad:function(e,t){t=t||" ";if(this.s.length>=e)return new n(this.s);e-=this.s.length;var r=Array(Math.ceil(e/2)+1).join(t),i=Array(Math.floor(e/2)+1).join(t);return new n(r+this.s+i)},padLeft:function(e,t){return t=t||" ",this.s.length>=e?new n(this.s):new n(Array(e-this.s.length+1).join(t)+this.s)},padRight:function(e,t){return t=t||" ",this.s.length>=e?new n(this.s):new n(this.s+Array(e-this.s.length+1).join(t))},parseCSV:function(e,t,n,r){e=e||",",n=n||"\\",typeof t=="undefined"&&(t='"');var i=0,s=[],o=[],u=this.s.length,a=!1,f=this,l=function(e){return f.s.charAt(e)};if(typeof r!="undefined")var c=[];t||(a=!0);while(i<u){var h=l(i);switch(h){case n:if(a&&(n!==t||l(i+1)===t)){i+=1,s.push(l(i));break}if(n!==t)break;case t:a=!a;break;case e:a&&t?s.push(h):(o.push(s.join("")),s.length=0);break;case r:a?s.push(h):c&&(o.push(s.join("")),c.push(o),o=[],s.length=0);break;default:a&&s.push(h)}i+=1}return o.push(s.join("")),c?(c.push(o),c):o},replaceAll:function(e,t){var r=this.s.split(e).join(t);return new n(r)},right:function(e){if(e>=0){var t=this.s.substr(this.s.length-e,e);return new n(t)}return this.left(-e)},slugify:function(){var e=(new n(this.s.replace(/[^\w\s-]/g,"").toLowerCase())).dasherize().s;return e.charAt(0)==="-"&&(e=e.substr(1)),new n(e)},startsWith:function(e){return this.s.lastIndexOf(e,0)===0},stripPunctuation:function(){return new n(this.s.replace(/[^\w\s]|_/g,"").replace(/\s+/g," "))},stripTags:function(){var e=this.s,t=arguments.length>0?arguments:[""];return p(t,function(t){e=e.replace(RegExp("</?"+t+"[^<>]*>","gi"),"")}),new n(e)},template:function(e,t,r){var i=this.s,t=t||h.TMPL_OPEN,r=r||h.TMPL_CLOSE,s=new RegExp(t+"(.+?)"+r,"g"),o=i.match(s)||[];return o.forEach(function(n){var s=n.substring(t.length,n.length-r.length);typeof e[s]!="undefined"&&(i=i.replace(n,e[s]))}),new n(i)},times:function(e){return new n((new Array(e+1)).join(this.s))},toBoolean:function(){if(typeof this.orig=="string"){var e=this.s.toLowerCase();return e==="true"||e==="yes"||e==="on"}return this.orig===!0||this.orig===1},toFloat:function(e){var t=parseFloat(this.s);return e?parseFloat(t.toFixed(e)):t},toInt:function(){return/^\s*-?0x/i.test(this.s)?parseInt(this.s,16):parseInt(this.s,10)},trim:function(){var e;return typeof r.trim=="undefined"?e=this.s.replace(/(^\s*|\s*$)/g,""):e=this.s.trim(),new n(e)},trimLeft:function(){var e;return r.trimLeft?e=this.s.trimLeft():e=this.s.replace(/(^\s*)/g,""),new n(e)},trimRight:function(){var e;return r.trimRight?e=this.s.trimRight():e=this.s.replace(/\s+$/,""),new n(e)},truncate:function(e,t){var r=this.s;e=~~e,t=t||"...";if(r.length<=e)return new n(r);var i=function(e){return e.toUpperCase()!==e.toLowerCase()?"A":" "},s=r.slice(0,e+1).replace(/.(?=\W*\w*$)/g,i);return s.slice(s.length-2).match(/\w\w/)?s=s.replace(/\s*\S+$/,""):s=(new n(s.slice(0,s.length-1))).trimRight().s,(s+t).length>r.length?new n(r):new n(r.slice(0,s.length)+t)},toCSV:function(){function u(e){return e!==null&&e!==""}var e=",",t='"',r="\\",i=!0,s=!1,o=[];typeof arguments[0]=="object"?(e=arguments[0].delimiter||e,e=arguments[0].separator||e,t=arguments[0].qualifier||t,i=!!arguments[0].encloseNumbers,r=arguments[0].escape||r,s=!!arguments[0].keys):typeof arguments[0]=="string"&&(e=arguments[0]),typeof arguments[1]=="string"&&(t=arguments[1]),arguments[1]===null&&(t=null);if(this.orig instanceof Array)o=this.orig;else for(var a in this.orig)this.orig.hasOwnProperty(a)&&(s?o.push(a):o.push(this.orig[a]));var f=r+t,l=[];for(var c=0;c<o.length;++c){var h=u(t);typeof o[c]=="number"&&(h&=i),h&&l.push(t);if(o[c]!==null&&o[c]!==undefined){var p=(new n(o[c])).replaceAll(t,f).s;l.push(p)}else l.push("");h&&l.push(t),e&&l.push(e)}return l.length=l.length-1,new n(l.join(""))},toString:function(){return this.s},underscore:function(){var e=this.trim().s.replace(/([a-z\d])([A-Z]+)/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase();return(new n(this.s.charAt(0))).isUpper()&&(e="_"+e),new n(e)},unescapeHTML:function(){return new n(this.s.replace(/\&([^;]+);/g,function(e,t){var n;return t in d?d[t]:(n=t.match(/^#x([\da-fA-F]+)$/))?String.fromCharCode(parseInt(n[1],16)):(n=t.match(/^#(\d+)$/))?String.fromCharCode(~~n[1]):e}))},valueOf:function(){return this.s.valueOf()}},s=[],a=l();for(var f in a)(function(e){var t=r[e];typeof t=="function"&&(i[e]||(a[e]==="string"?i[e]=function(){return new n(t.apply(this,arguments))}:i[e]=t))})(f);i.repeat=i.times,i.include=i.contains,i.toInteger=i.toInt,i.toBool=i.toBoolean,i.decodeHTMLEntities=i.decodeHtmlEntities,h.extendPrototype=o,h.restorePrototype=u,h.VERSION=e,h.TMPL_OPEN="{{",h.TMPL_CLOSE="}}",h.ENTITIES=t,typeof module!="undefined"&&typeof module.exports!="undefined"?module.exports=h:typeof define=="function"&&define.amd?define([],function(){return h}):window.S=h;var d={lt:"<",gt:">",quot:'"',apos:"'",amp:"&"},v={};for(var m in d)v[d[m]]=m;t={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,"OElig;":338,"oelig;":339,"Scaron;":352,"scaron;":353,"Yuml;":376,"fnof;":402,"circ;":710,"tilde;":732,"Alpha;":913,"Beta;":914,"Gamma;":915,"Delta;":916,"Epsilon;":917,"Zeta;":918,"Eta;":919,"Theta;":920,"Iota;":921,"Kappa;":922,"Lambda;":923,"Mu;":924,"Nu;":925,"Xi;":926,"Omicron;":927,"Pi;":928,"Rho;":929,"Sigma;":931,"Tau;":932,"Upsilon;":933,"Phi;":934,"Chi;":935,"Psi;":936,"Omega;":937,"alpha;":945,"beta;":946,"gamma;":947,"delta;":948,"epsilon;":949,"zeta;":950,"eta;":951,"theta;":952,"iota;":953,"kappa;":954,"lambda;":955,"mu;":956,"nu;":957,"xi;":958,"omicron;":959,"pi;":960,"rho;":961,"sigmaf;":962,"sigma;":963,"tau;":964,"upsilon;":965,"phi;":966,"chi;":967,"psi;":968,"omega;":969,"thetasym;":977,"upsih;":978,"piv;":982,"ensp;":8194,"emsp;":8195,"thinsp;":8201,"zwnj;":8204,"zwj;":8205,"lrm;":8206,"rlm;":8207,"ndash;":8211,"mdash;":8212,"lsquo;":8216,"rsquo;":8217,"sbquo;":8218,"ldquo;":8220,"rdquo;":8221,"bdquo;":8222,"dagger;":8224,"Dagger;":8225,"bull;":8226,"hellip;":8230,"permil;":8240,"prime;":8242,"Prime;":8243,"lsaquo;":8249,"rsaquo;":8250,"oline;":8254,"frasl;":8260,"euro;":8364,"image;":8465,"weierp;":8472,"real;":8476,"trade;":8482,"alefsym;":8501,"larr;":8592,"uarr;":8593,"rarr;":8594,"darr;":8595,"harr;":8596,"crarr;":8629,"lArr;":8656,"uArr;":8657,"rArr;":8658,"dArr;":8659,"hArr;":8660,"forall;":8704,"part;":8706,"exist;":8707,"empty;":8709,"nabla;":8711,"isin;":8712,"notin;":8713,"ni;":8715,"prod;":8719,"sum;":8721,"minus;":8722,"lowast;":8727,"radic;":8730,"prop;":8733,"infin;":8734,"ang;":8736,"and;":8743,"or;":8744,"cap;":8745,"cup;":8746,"int;":8747,"there4;":8756,"sim;":8764,"cong;":8773,"asymp;":8776,"ne;":8800,"equiv;":8801,"le;":8804,"ge;":8805,"sub;":8834,"sup;":8835,"nsub;":8836,"sube;":8838,"supe;":8839,"oplus;":8853,"otimes;":8855,"perp;":8869,"sdot;":8901,"lceil;":8968,"rceil;":8969,"lfloor;":8970,"rfloor;":8971,"lang;":9001,"rang;":9002,"loz;":9674,"spades;":9824,"clubs;":9827,"hearts;":9829,"diams;":9830}}.call(this);
3
+ */!function(){"use strict";function n(e,t){t!==null&&t!==undefined?typeof t=="string"?e.s=t:e.s=t.toString():e.s=t,e.orig=t,t!==null&&t!==undefined?e.__defineGetter__?e.__defineGetter__("length",function(){return e.s.length}):e.length=t.length:e.length=-1}function r(e){n(this,e)}function u(){for(var e in s)(function(e){var t=s[e];i.hasOwnProperty(e)||(o.push(e),i[e]=function(){return String.prototype.s=this,t.apply(this,arguments)})})(e)}function a(){for(var e=0;e<o.length;++e)delete String.prototype[o[e]];o.length=0}function c(){var e=h(),t={};for(var n=0;n<e.length;++n){var r=e[n],s=i[r];try{var o=typeof s.apply("teststring",[]);t[r]=o}catch(u){}}return t}function h(){var e=[];if(Object.getOwnPropertyNames)return e=Object.getOwnPropertyNames(i),e.splice(e.indexOf("valueOf"),1),e.splice(e.indexOf("toString"),1),e;var t={},n=[];for(var r in String.prototype)t[r]=r;for(var r in Object.prototype)delete t[r];for(var r in t)e.push(r);return e}function p(e){return new r(e)}function d(e,t){var n=[],r;for(r=0;r<e.length;r++)n.push(e[r]),t&&t.call(e,e[r],r);return n}var e="1.6.0",t={},i=String.prototype,s=r.prototype={between:function(e,t){var n=this.s,r=n.indexOf(e),i=n.indexOf(t),s=r+e.length;return new this.constructor(i>r?n.slice(s,i):"")},camelize:function(){var e=this.trim().s.replace(/(\-|_|\s)+(.)?/g,function(e,t,n){return n?n.toUpperCase():""});return new this.constructor(e)},capitalize:function(){return new this.constructor(this.s.substr(0,1).toUpperCase()+this.s.substring(1).toLowerCase())},charAt:function(e){return this.s.charAt(e)},chompLeft:function(e){var t=this.s;return t.indexOf(e)===0?(t=t.slice(e.length),new this.constructor(t)):this},chompRight:function(e){if(this.endsWith(e)){var t=this.s;return t=t.slice(0,t.length-e.length),new this.constructor(t)}return this},collapseWhitespace:function(){var e=this.s.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"");return new this.constructor(e)},contains:function(e){return this.s.indexOf(e)>=0},count:function(e){var t=0,n=this.s.indexOf(e);while(n>=0)t+=1,n=this.s.indexOf(e,n+1);return t},dasherize:function(){var e=this.trim().s.replace(/[_\s]+/g,"-").replace(/([A-Z])/g,"-$1").replace(/-+/g,"-").toLowerCase();return new this.constructor(e)},decodeHtmlEntities:function(){var e=this.s;return e=e.replace(/&#(\d+);?/g,function(e,t){return String.fromCharCode(t)}).replace(/&#[xX]([A-Fa-f0-9]+);?/g,function(e,t){return String.fromCharCode(parseInt(t,16))}).replace(/&([^;\W]+;?)/g,function(e,n){var r=n.replace(/;$/,""),i=t[n]||n.match(/;$/)&&t[r];return typeof i=="number"?String.fromCharCode(i):typeof i=="string"?i:e}),new this.constructor(e)},endsWith:function(e){var t=this.s.length-e.length;return t>=0&&this.s.indexOf(e,t)===t},escapeHTML:function(){return new this.constructor(this.s.replace(/[&<>"']/g,function(e){return"&"+m[e]+";"}))},ensureLeft:function(e){var t=this.s;return t.indexOf(e)===0?this:new this.constructor(e+t)},ensureRight:function(e){var t=this.s;return this.endsWith(e)?this:new this.constructor(t+e)},humanize:function(){if(this.s===null||this.s===undefined)return new this.constructor("");var e=this.underscore().replace(/_id$/,"").replace(/_/g," ").trim().capitalize();return new this.constructor(e)},isAlpha:function(){return!/[^a-z\xC0-\xFF]/.test(this.s.toLowerCase())},isAlphaNumeric:function(){return!/[^0-9a-z\xC0-\xFF]/.test(this.s.toLowerCase())},isEmpty:function(){return this.s===null||this.s===undefined?!0:/^[\s\xa0]*$/.test(this.s)},isLower:function(){return this.isAlpha()&&this.s.toLowerCase()===this.s},isNumeric:function(){return!/[^0-9]/.test(this.s)},isUpper:function(){return this.isAlpha()&&this.s.toUpperCase()===this.s},left:function(e){if(e>=0){var t=this.s.substr(0,e);return new this.constructor(t)}return this.right(-e)},lines:function(){return this.replaceAll("\r\n","\n").s.split("\n")},pad:function(e,t){t=t||" ";if(this.s.length>=e)return new this.constructor(this.s);e-=this.s.length;var n=Array(Math.ceil(e/2)+1).join(t),r=Array(Math.floor(e/2)+1).join(t);return new this.constructor(n+this.s+r)},padLeft:function(e,t){return t=t||" ",this.s.length>=e?new this.constructor(this.s):new this.constructor(Array(e-this.s.length+1).join(t)+this.s)},padRight:function(e,t){return t=t||" ",this.s.length>=e?new this.constructor(this.s):new this.constructor(this.s+Array(e-this.s.length+1).join(t))},parseCSV:function(e,t,n,r){e=e||",",n=n||"\\",typeof t=="undefined"&&(t='"');var i=0,s=[],o=[],u=this.s.length,a=!1,f=this,l=function(e){return f.s.charAt(e)};if(typeof r!="undefined")var c=[];t||(a=!0);while(i<u){var h=l(i);switch(h){case n:if(a&&(n!==t||l(i+1)===t)){i+=1,s.push(l(i));break}if(n!==t)break;case t:a=!a;break;case e:a&&t?s.push(h):(o.push(s.join("")),s.length=0);break;case r:a?s.push(h):c&&(o.push(s.join("")),c.push(o),o=[],s.length=0);break;default:a&&s.push(h)}i+=1}return o.push(s.join("")),c?(c.push(o),c):o},replaceAll:function(e,t){var n=this.s.split(e).join(t);return new this.constructor(n)},right:function(e){if(e>=0){var t=this.s.substr(this.s.length-e,e);return new this.constructor(t)}return this.left(-e)},setValue:function(e){return n(this,e),this},slugify:function(){var e=(new r(this.s.replace(/[^\w\s-]/g,"").toLowerCase())).dasherize().s;return e.charAt(0)==="-"&&(e=e.substr(1)),new this.constructor(e)},startsWith:function(e){return this.s.lastIndexOf(e,0)===0},stripPunctuation:function(){return new this.constructor(this.s.replace(/[^\w\s]|_/g,"").replace(/\s+/g," "))},stripTags:function(){var e=this.s,t=arguments.length>0?arguments:[""];return d(t,function(t){e=e.replace(RegExp("</?"+t+"[^<>]*>","gi"),"")}),new this.constructor(e)},template:function(e,t,n){var r=this.s,t=t||p.TMPL_OPEN,n=n||p.TMPL_CLOSE,i=new RegExp(t+"(.+?)"+n,"g"),s=r.match(i)||[];return s.forEach(function(i){var s=i.substring(t.length,i.length-n.length);typeof e[s]!="undefined"&&(r=r.replace(i,e[s]))}),new this.constructor(r)},times:function(e){return new this.constructor((new Array(e+1)).join(this.s))},toBoolean:function(){if(typeof this.orig=="string"){var e=this.s.toLowerCase();return e==="true"||e==="yes"||e==="on"}return this.orig===!0||this.orig===1},toFloat:function(e){var t=parseFloat(this.s);return e?parseFloat(t.toFixed(e)):t},toInt:function(){return/^\s*-?0x/i.test(this.s)?parseInt(this.s,16):parseInt(this.s,10)},trim:function(){var e;return typeof i.trim=="undefined"?e=this.s.replace(/(^\s*|\s*$)/g,""):e=this.s.trim(),new this.constructor(e)},trimLeft:function(){var e;return i.trimLeft?e=this.s.trimLeft():e=this.s.replace(/(^\s*)/g,""),new this.constructor(e)},trimRight:function(){var e;return i.trimRight?e=this.s.trimRight():e=this.s.replace(/\s+$/,""),new this.constructor(e)},truncate:function(e,t){var n=this.s;e=~~e,t=t||"...";if(n.length<=e)return new this.constructor(n);var i=function(e){return e.toUpperCase()!==e.toLowerCase()?"A":" "},s=n.slice(0,e+1).replace(/.(?=\W*\w*$)/g,i);return s.slice(s.length-2).match(/\w\w/)?s=s.replace(/\s*\S+$/,""):s=(new r(s.slice(0,s.length-1))).trimRight().s,(s+t).length>n.length?new r(n):new r(n.slice(0,s.length)+t)},toCSV:function(){function u(e){return e!==null&&e!==""}var e=",",t='"',n="\\",i=!0,s=!1,o=[];typeof arguments[0]=="object"?(e=arguments[0].delimiter||e,e=arguments[0].separator||e,t=arguments[0].qualifier||t,i=!!arguments[0].encloseNumbers,n=arguments[0].escape||n,s=!!arguments[0].keys):typeof arguments[0]=="string"&&(e=arguments[0]),typeof arguments[1]=="string"&&(t=arguments[1]),arguments[1]===null&&(t=null);if(this.orig instanceof Array)o=this.orig;else for(var a in this.orig)this.orig.hasOwnProperty(a)&&(s?o.push(a):o.push(this.orig[a]));var f=n+t,l=[];for(var c=0;c<o.length;++c){var h=u(t);typeof o[c]=="number"&&(h&=i),h&&l.push(t);if(o[c]!==null&&o[c]!==undefined){var p=(new r(o[c])).replaceAll(t,f).s;l.push(p)}else l.push("");h&&l.push(t),e&&l.push(e)}return l.length=l.length-1,new this.constructor(l.join(""))},toString:function(){return this.s},underscore:function(){var e=this.trim().s.replace(/([a-z\d])([A-Z]+)/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase();return(new r(this.s.charAt(0))).isUpper()&&(e="_"+e),new this.constructor(e)},unescapeHTML:function(){return new this.constructor(this.s.replace(/\&([^;]+);/g,function(e,t){var n;return t in v?v[t]:(n=t.match(/^#x([\da-fA-F]+)$/))?String.fromCharCode(parseInt(n[1],16)):(n=t.match(/^#(\d+)$/))?String.fromCharCode(~~n[1]):e}))},valueOf:function(){return this.s.valueOf()}},o=[],f=c();for(var l in f)(function(e){var t=i[e];typeof t=="function"&&(s[e]||(f[e]==="string"?s[e]=function(){return new this.constructor(t.apply(this,arguments))}:s[e]=t))})(l);s.repeat=s.times,s.include=s.contains,s.toInteger=s.toInt,s.toBool=s.toBoolean,s.decodeHTMLEntities=s.decodeHtmlEntities,s.constructor=r,p.extendPrototype=u,p.restorePrototype=a,p.VERSION=e,p.TMPL_OPEN="{{",p.TMPL_CLOSE="}}",p.ENTITIES=t,typeof module!="undefined"&&typeof module.exports!="undefined"?module.exports=p:typeof define=="function"&&define.amd?define([],function(){return p}):window.S=p;var v={lt:"<",gt:">",quot:'"',apos:"'",amp:"&"},m={};for(var g in v)m[v[g]]=g;t={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,"OElig;":338,"oelig;":339,"Scaron;":352,"scaron;":353,"Yuml;":376,"fnof;":402,"circ;":710,"tilde;":732,"Alpha;":913,"Beta;":914,"Gamma;":915,"Delta;":916,"Epsilon;":917,"Zeta;":918,"Eta;":919,"Theta;":920,"Iota;":921,"Kappa;":922,"Lambda;":923,"Mu;":924,"Nu;":925,"Xi;":926,"Omicron;":927,"Pi;":928,"Rho;":929,"Sigma;":931,"Tau;":932,"Upsilon;":933,"Phi;":934,"Chi;":935,"Psi;":936,"Omega;":937,"alpha;":945,"beta;":946,"gamma;":947,"delta;":948,"epsilon;":949,"zeta;":950,"eta;":951,"theta;":952,"iota;":953,"kappa;":954,"lambda;":955,"mu;":956,"nu;":957,"xi;":958,"omicron;":959,"pi;":960,"rho;":961,"sigmaf;":962,"sigma;":963,"tau;":964,"upsilon;":965,"phi;":966,"chi;":967,"psi;":968,"omega;":969,"thetasym;":977,"upsih;":978,"piv;":982,"ensp;":8194,"emsp;":8195,"thinsp;":8201,"zwnj;":8204,"zwj;":8205,"lrm;":8206,"rlm;":8207,"ndash;":8211,"mdash;":8212,"lsquo;":8216,"rsquo;":8217,"sbquo;":8218,"ldquo;":8220,"rdquo;":8221,"bdquo;":8222,"dagger;":8224,"Dagger;":8225,"bull;":8226,"hellip;":8230,"permil;":8240,"prime;":8242,"Prime;":8243,"lsaquo;":8249,"rsaquo;":8250,"oline;":8254,"frasl;":8260,"euro;":8364,"image;":8465,"weierp;":8472,"real;":8476,"trade;":8482,"alefsym;":8501,"larr;":8592,"uarr;":8593,"rarr;":8594,"darr;":8595,"harr;":8596,"crarr;":8629,"lArr;":8656,"uArr;":8657,"rArr;":8658,"dArr;":8659,"hArr;":8660,"forall;":8704,"part;":8706,"exist;":8707,"empty;":8709,"nabla;":8711,"isin;":8712,"notin;":8713,"ni;":8715,"prod;":8719,"sum;":8721,"minus;":8722,"lowast;":8727,"radic;":8730,"prop;":8733,"infin;":8734,"ang;":8736,"and;":8743,"or;":8744,"cap;":8745,"cup;":8746,"int;":8747,"there4;":8756,"sim;":8764,"cong;":8773,"asymp;":8776,"ne;":8800,"equiv;":8801,"le;":8804,"ge;":8805,"sub;":8834,"sup;":8835,"nsub;":8836,"sube;":8838,"supe;":8839,"oplus;":8853,"otimes;":8855,"perp;":8869,"sdot;":8901,"lceil;":8968,"rceil;":8969,"lfloor;":8970,"rfloor;":8971,"lang;":9001,"rang;":9002,"loz;":9674,"spades;":9824,"clubs;":9827,"hearts;":9829,"diams;":9830}}.call(this);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stringjs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-23 00:00:00.000000000 Z
12
+ date: 2013-09-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
@@ -86,7 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
86
  version: '0'
87
87
  segments:
88
88
  - 0
89
- hash: 3178142926715215922
89
+ hash: -1196221594382779845
90
90
  required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  none: false
92
92
  requirements:
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  version: '0'
96
96
  segments:
97
97
  - 0
98
- hash: 3178142926715215922
98
+ hash: -1196221594382779845
99
99
  requirements: []
100
100
  rubyforge_project:
101
101
  rubygems_version: 1.8.25