crossroadsjs-rails 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1 +1,2 @@
1
- /Gemfile.lock
1
+ /Gemfile.lock
2
+ *.gem
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Crossroads.js for Rails ![Build Status][travis_ci_build_status]
2
2
 
3
- Provides Crossroads.js (0.7.1) for use with Rails 3
3
+ Provides Crossroads.js (0.8.0) for use with Rails 3
4
4
 
5
5
  [RubyGems][ruby_gems] | [Ruby Toolbox][ruby_toolbox] | [GitHub][github] | [Travis CI][travis_ci] | [RubyDoc][ruby_doc]
6
6
 
@@ -1,6 +1,6 @@
1
1
  module Crossroadsjs
2
2
  module Rails
3
- VERSION = "1.0.0"
4
- CROSSROADSJS_VERSION = "0.7.1";
3
+ VERSION = "1.1.0"
4
+ CROSSROADSJS_VERSION = "0.8.0";
5
5
  end
6
6
  end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Crossroadsjs::Rails do
4
- it { Crossroadsjs::Rails::VERSION.should == "1.0.0" }
5
- it { Crossroadsjs::Rails::CROSSROADSJS_VERSION.should == "0.7.1" }
4
+ it { Crossroadsjs::Rails::VERSION.should == "1.1.0" }
5
+ it { Crossroadsjs::Rails::CROSSROADSJS_VERSION.should == "0.8.0" }
6
6
  end
@@ -1,15 +1,14 @@
1
1
  /** @license
2
- * Crossroads.js <http://millermedeiros.github.com/crossroads.js>
3
- * Released under the MIT license
2
+ * crossroads <http://millermedeiros.github.com/crossroads.js/>
3
+ * License: MIT
4
4
  * Author: Miller Medeiros
5
- * Version: 0.7.1 - Build: 93 (2012/02/02 09:29 AM)
5
+ * Version: 0.8.0 (2012/3/5 14:26)
6
6
  */
7
7
 
8
8
  (function (define) {
9
9
  define(['signals'], function (signals) {
10
10
 
11
11
  var crossroads,
12
- patternLexer,
13
12
  UNDEF;
14
13
 
15
14
  // Helpers -----------
@@ -85,6 +84,7 @@ define(['signals'], function (signals) {
85
84
  */
86
85
  function Crossroads() {
87
86
  this._routes = [];
87
+ this._prevRoutes = [];
88
88
  this.bypassed = new signals.Signal();
89
89
  this.routed = new signals.Signal();
90
90
  }
@@ -121,8 +121,9 @@ define(['signals'], function (signals) {
121
121
  this._routes.length = 0;
122
122
  },
123
123
 
124
- parse : function (request) {
124
+ parse : function (request, defaultArgs) {
125
125
  request = request || '';
126
+ defaultArgs = defaultArgs || [];
126
127
 
127
128
  var routes = this._getMatchedRoutes(request),
128
129
  i = 0,
@@ -130,16 +131,26 @@ define(['signals'], function (signals) {
130
131
  cur;
131
132
 
132
133
  if (n) {
134
+ this._notifyPrevRoutes(request);
135
+ this._prevRoutes = routes;
133
136
  //shold be incremental loop, execute routes in order
134
137
  while (i < n) {
135
138
  cur = routes[i];
136
- cur.route.matched.dispatch.apply(cur.route.matched, cur.params);
139
+ cur.route.matched.dispatch.apply(cur.route.matched, defaultArgs.concat(cur.params));
137
140
  cur.isFirst = !i;
138
- this.routed.dispatch(request, cur);
141
+ this.routed.dispatch.apply(this.routed, defaultArgs.concat([request, cur]));
139
142
  i += 1;
140
143
  }
141
144
  } else {
142
- this.bypassed.dispatch(request);
145
+ this.bypassed.dispatch.apply(this.bypassed, defaultArgs.concat([request]));
146
+ }
147
+ },
148
+
149
+ _notifyPrevRoutes : function(request) {
150
+ var i = 0, cur;
151
+ while (cur = this._prevRoutes[i++]) {
152
+ //check if switched exist since route may be disposed
153
+ if(cur.route.switched) cur.route.switched.dispatch(request);
143
154
  }
144
155
  },
145
156
 
@@ -179,8 +190,15 @@ define(['signals'], function (signals) {
179
190
 
180
191
  //"static" instance
181
192
  crossroads = new Crossroads();
182
- crossroads.VERSION = '0.7.1';
193
+ crossroads.VERSION = '0.8.0';
183
194
 
195
+ crossroads.NORM_AS_ARRAY = function (req, vals) {
196
+ return [vals.vals_];
197
+ };
198
+
199
+ crossroads.NORM_AS_OBJECT = function (req, vals) {
200
+ return [vals];
201
+ };
184
202
 
185
203
 
186
204
  // Route --------------
@@ -190,13 +208,15 @@ define(['signals'], function (signals) {
190
208
  * @constructor
191
209
  */
192
210
  function Route(pattern, callback, priority, router) {
193
- var isRegexPattern = isRegExp(pattern);
211
+ var isRegexPattern = isRegExp(pattern),
212
+ patternLexer = crossroads.patternLexer;
194
213
  this._router = router;
195
214
  this._pattern = pattern;
196
215
  this._paramsIds = isRegexPattern? null : patternLexer.getParamIds(this._pattern);
197
216
  this._optionalParamsIds = isRegexPattern? null : patternLexer.getOptionalParamsIds(this._pattern);
198
217
  this._matchRegexp = isRegexPattern? pattern : patternLexer.compilePattern(pattern);
199
218
  this.matched = new signals.Signal();
219
+ this.switched = new signals.Signal();
200
220
  if (callback) {
201
221
  this.matched.add(callback);
202
222
  }
@@ -249,7 +269,7 @@ define(['signals'], function (signals) {
249
269
 
250
270
  _getParamsObject : function (request) {
251
271
  var shouldTypecast = this._router.shouldTypecast,
252
- values = patternLexer.getParamValues(request, this._matchRegexp, shouldTypecast),
272
+ values = crossroads.patternLexer.getParamValues(request, this._matchRegexp, shouldTypecast),
253
273
  o = {},
254
274
  n = values.length;
255
275
  while (n--) {
@@ -270,7 +290,7 @@ define(['signals'], function (signals) {
270
290
  if (norm && isFunction(norm)) {
271
291
  params = norm(request, this._getParamsObject(request));
272
292
  } else {
273
- params = patternLexer.getParamValues(request, this._matchRegexp, this._router.shouldTypecast);
293
+ params = crossroads.patternLexer.getParamValues(request, this._matchRegexp, this._router.shouldTypecast);
274
294
  }
275
295
  return params;
276
296
  },
@@ -281,7 +301,8 @@ define(['signals'], function (signals) {
281
301
 
282
302
  _destroy : function () {
283
303
  this.matched.dispose();
284
- this.matched = this._pattern = this._matchRegexp = null;
304
+ this.switched.dispose();
305
+ this.matched = this.switched = this._pattern = this._matchRegexp = null;
285
306
  },
286
307
 
287
308
  toString : function () {
@@ -295,7 +316,7 @@ define(['signals'], function (signals) {
295
316
  // Pattern Lexer ------
296
317
  //=====================
297
318
 
298
- patternLexer = crossroads.patternLexer = (function () {
319
+ crossroads.patternLexer = (function () {
299
320
 
300
321
 
301
322
  var ESCAPE_CHARS_REGEXP = /[\\.+*?\^$\[\](){}\/'#]/g, //match chars that should be escaped on string regexp
@@ -306,15 +327,21 @@ define(['signals'], function (signals) {
306
327
  REQUIRED_PARAMS_REGEXP = /\{([^}]+)\}/g, //match everything between `{ }`
307
328
  OPTIONAL_PARAMS_REGEXP = /:([^:]+):/g, //match everything between `: :`
308
329
  PARAMS_REGEXP = /(?:\{|:)([^}:]+)(?:\}|:)/g, //capture everything between `{ }` or `: :`
330
+ REQUIRED_REST = /\{([^}]+)\*\}/g,
331
+ OPTIONAL_REST = /:([^:]+)\*:/g,
309
332
 
310
333
  //used to save params during compile (avoid escaping things that
311
334
  //shouldn't be escaped).
312
335
  SAVE_REQUIRED_PARAMS = '__CR_RP__',
313
336
  SAVE_OPTIONAL_PARAMS = '__CR_OP__',
337
+ SAVE_REQUIRED_REST = '__CR_RR__',
338
+ SAVE_OPTIONAL_REST = '__CR_OR__',
314
339
  SAVE_REQUIRED_SLASHES = '__CR_RS__',
315
340
  SAVE_OPTIONAL_SLASHES = '__CR_OS__',
316
341
  SAVED_REQUIRED_REGEXP = new RegExp(SAVE_REQUIRED_PARAMS, 'g'),
317
342
  SAVED_OPTIONAL_REGEXP = new RegExp(SAVE_OPTIONAL_PARAMS, 'g'),
343
+ SAVED_REQUIRED_REST_REGEXP = new RegExp(SAVE_REQUIRED_REST, 'g'),
344
+ SAVED_OPTIONAL_REST_REGEXP = new RegExp(SAVE_OPTIONAL_REST, 'g'),
318
345
  SAVED_OPTIONAL_SLASHES_REGEXP = new RegExp(SAVE_OPTIONAL_SLASHES, 'g'),
319
346
  SAVED_REQUIRED_SLASHES_REGEXP = new RegExp(SAVE_REQUIRED_SLASHES, 'g');
320
347
 
@@ -350,6 +377,8 @@ define(['signals'], function (signals) {
350
377
  //save chars that shouldn't be escaped
351
378
  pattern = pattern.replace(OPTIONAL_SLASHES_REGEXP, '$1'+ SAVE_OPTIONAL_SLASHES +'$2');
352
379
  pattern = pattern.replace(REQUIRED_SLASHES_REGEXP, '$1'+ SAVE_REQUIRED_SLASHES +'$2');
380
+ pattern = pattern.replace(OPTIONAL_REST, SAVE_OPTIONAL_REST);
381
+ pattern = pattern.replace(REQUIRED_REST, SAVE_REQUIRED_REST);
353
382
  pattern = pattern.replace(OPTIONAL_PARAMS_REGEXP, SAVE_OPTIONAL_PARAMS);
354
383
  return pattern.replace(REQUIRED_PARAMS_REGEXP, SAVE_REQUIRED_PARAMS);
355
384
  }
@@ -357,6 +386,8 @@ define(['signals'], function (signals) {
357
386
  function untokenize(pattern) {
358
387
  pattern = pattern.replace(SAVED_OPTIONAL_SLASHES_REGEXP, '\\/?');
359
388
  pattern = pattern.replace(SAVED_REQUIRED_SLASHES_REGEXP, '\\/');
389
+ pattern = pattern.replace(SAVED_OPTIONAL_REST_REGEXP, '(.*)?'); // optional group to avoid passing empty string as captured
390
+ pattern = pattern.replace(SAVED_REQUIRED_REST_REGEXP, '(.+)');
360
391
  pattern = pattern.replace(SAVED_OPTIONAL_REGEXP, '([^\\/]+)?\/?');
361
392
  return pattern.replace(SAVED_REQUIRED_REGEXP, '([^\\/]+)');
362
393
  }
@@ -1,15 +1,7 @@
1
- /*
2
-
3
- Crossroads.js <http://millermedeiros.github.com/crossroads.js>
4
- Released under the MIT license
5
- Author: Miller Medeiros
6
- Version: 0.7.1 - Build: 93 (2012/02/02 09:29 AM)
7
- */
8
- (function(f){f(["signals"],function(g){function f(a,b){if(a.indexOf)return a.indexOf(b);else{for(var c=a.length;c--;)if(a[c]===b)return c;return-1}}function i(a,b){return"[object "+b+"]"===Object.prototype.toString.call(a)}function n(a){return a===null||a==="null"?null:a==="true"?!0:a==="false"?!1:a===m||a==="undefined"?m:a===""||isNaN(a)?a:parseFloat(a)}function k(){this._routes=[];this.bypassed=new g.Signal;this.routed=new g.Signal}function o(a,b,c,e){var d=i(a,"RegExp");this._router=e;this._pattern=
9
- a;this._paramsIds=d?null:h.getParamIds(this._pattern);this._optionalParamsIds=d?null:h.getOptionalParamsIds(this._pattern);this._matchRegexp=d?a:h.compilePattern(a);this.matched=new g.Signal;b&&this.matched.add(b);this._priority=c||0}var j,h,m;k.prototype={normalizeFn:null,create:function(){return new k},shouldTypecast:!1,addRoute:function(a,b,c){a=new o(a,b,c,this);this._sortedInsert(a);return a},removeRoute:function(a){var b=f(this._routes,a);b!==-1&&this._routes.splice(b,1);a._destroy()},removeAllRoutes:function(){for(var a=
10
- this.getNumRoutes();a--;)this._routes[a]._destroy();this._routes.length=0},parse:function(a){var a=a||"",b=this._getMatchedRoutes(a),c=0,e=b.length,d;if(e)for(;c<e;)d=b[c],d.route.matched.dispatch.apply(d.route.matched,d.params),d.isFirst=!c,this.routed.dispatch(a,d),c+=1;else this.bypassed.dispatch(a)},getNumRoutes:function(){return this._routes.length},_sortedInsert:function(a){var b=this._routes,c=b.length;do--c;while(b[c]&&a._priority<=b[c]._priority);b.splice(c+1,0,a)},_getMatchedRoutes:function(a){for(var b=
11
- [],c=this._routes,e=c.length,d;d=c[--e];)(!b.length||d.greedy)&&d.match(a)&&b.push({route:d,params:d._getParamsArray(a)});return b},toString:function(){return"[crossroads numRoutes:"+this.getNumRoutes()+"]"}};j=new k;j.VERSION="0.7.1";o.prototype={greedy:!1,rules:void 0,match:function(a){return this._matchRegexp.test(a)&&this._validateParams(a)},_validateParams:function(a){var b=this.rules,c=this._getParamsObject(a),e;for(e in b)if(e!=="normalize_"&&b.hasOwnProperty(e)&&!this._isValidParam(a,e,c))return!1;
12
- return!0},_isValidParam:function(a,b,c){var e=this.rules[b],d=c[b],l=!1;d==null&&this._optionalParamsIds&&f(this._optionalParamsIds,b)!==-1?l=!0:i(e,"RegExp")?l=e.test(d):i(e,"Array")?l=f(e,d)!==-1:i(e,"Function")&&(l=e(d,a,c));return l},_getParamsObject:function(a){for(var b=this._router.shouldTypecast,c=h.getParamValues(a,this._matchRegexp,b),e={},d=c.length;d--;)e[d]=c[d],this._paramsIds&&(e[this._paramsIds[d]]=c[d]);e.request_=b?n(a):a;e.vals_=c;return e},_getParamsArray:function(a){var b=this.rules?
13
- this.rules.normalize_:null;return(b=b||this._router.normalizeFn)&&i(b,"Function")?b(a,this._getParamsObject(a)):h.getParamValues(a,this._matchRegexp,this._router.shouldTypecast)},dispose:function(){this._router.removeRoute(this)},_destroy:function(){this.matched.dispose();this.matched=this._pattern=this._matchRegexp=null},toString:function(){return'[Route pattern:"'+this._pattern+'", numListeners:'+this.matched.getNumListeners()+"]"}};h=j.patternLexer=function(){function a(a,b){for(var c=[],d;d=a.exec(b);)c.push(d[1]);
14
- return c}var b=/[\\.+*?\^$\[\](){}\/'#]/g,c=/\/$/g,e=/([:}]|\w(?=\/))\/?(:)/g,d=/([:}])\/?(\{)/g,f=/\{([^}]+)\}/g,g=/:([^:]+):/g,h=/(?:\{|:)([^}:]+)(?:\}|:)/g,i=RegExp("__CR_RP__","g"),j=RegExp("__CR_OP__","g"),k=RegExp("__CR_OS__","g"),m=RegExp("__CR_RS__","g");return{getParamIds:function(b){return a(h,b)},getOptionalParamsIds:function(b){return a(g,b)},getParamValues:function(a,b,c){if(a=b.exec(a))if(a.shift(),c){c=a;a=c.length;for(b=[];a--;)b[a]=n(c[a]);a=b}return a},compilePattern:function(a){if(a=
15
- a||"")a=a.replace(c,""),a=a.replace(e,"$1__CR_OS__$2"),a=a.replace(d,"$1__CR_RS__$2"),a=a.replace(g,"__CR_OP__"),a=a.replace(f,"__CR_RP__"),a=a.replace(b,"\\$&"),a=a.replace(k,"\\/?"),a=a.replace(m,"\\/"),a=a.replace(j,"([^\\/]+)?/?"),a=a.replace(i,"([^\\/]+)");return RegExp("^"+a+"/?$")}}}();return j})})(typeof define==="function"&&define.amd?define:function(f,g){typeof module!=="undefined"&&module.exports?module.exports=g(require(f[0])):window.crossroads=g(window[f[0]])});
1
+ /** @license
2
+ * crossroads <http://millermedeiros.github.com/crossroads.js/>
3
+ * License: MIT
4
+ * Author: Miller Medeiros
5
+ * Version: 0.8.0 (2012/3/5 14:26)
6
+ */
7
+ (function(a){a(["signals"],function(a){function d(a,b){if(a.indexOf)return a.indexOf(b);var c=a.length;while(c--)if(a[c]===b)return c;return-1}function e(a,b){return"[object "+b+"]"===Object.prototype.toString.call(a)}function f(a){return e(a,"RegExp")}function g(a){return e(a,"Array")}function h(a){return e(a,"Function")}function i(a){var b;return a===null||a==="null"?b=null:a==="true"?b=!0:a==="false"?b=!1:a===c||a==="undefined"?b=c:a===""||isNaN(a)?b=a:b=parseFloat(a),b}function j(a){var b=a.length,c=[];while(b--)c[b]=i(a[b]);return c}function k(){this._routes=[],this._prevRoutes=[],this.bypassed=new a.Signal,this.routed=new a.Signal}function l(c,d,e,g){var h=f(c),i=b.patternLexer;this._router=g,this._pattern=c,this._paramsIds=h?null:i.getParamIds(this._pattern),this._optionalParamsIds=h?null:i.getOptionalParamsIds(this._pattern),this._matchRegexp=h?c:i.compilePattern(c),this.matched=new a.Signal,this.switched=new a.Signal,d&&this.matched.add(d),this._priority=e||0}var b,c;return k.prototype={normalizeFn:null,create:function(){return new k},shouldTypecast:!1,addRoute:function(a,b,c){var d=new l(a,b,c,this);return this._sortedInsert(d),d},removeRoute:function(a){var b=d(this._routes,a);b!==-1&&this._routes.splice(b,1),a._destroy()},removeAllRoutes:function(){var a=this.getNumRoutes();while(a--)this._routes[a]._destroy();this._routes.length=0},parse:function(a,b){a=a||"",b=b||[];var c=this._getMatchedRoutes(a),d=0,e=c.length,f;if(e){this._notifyPrevRoutes(a),this._prevRoutes=c;while(d<e)f=c[d],f.route.matched.dispatch.apply(f.route.matched,b.concat(f.params)),f.isFirst=!d,this.routed.dispatch.apply(this.routed,b.concat([a,f])),d+=1}else this.bypassed.dispatch.apply(this.bypassed,b.concat([a]))},_notifyPrevRoutes:function(a){var b=0,c;while(c=this._prevRoutes[b++])c.route.switched&&c.route.switched.dispatch(a)},getNumRoutes:function(){return this._routes.length},_sortedInsert:function(a){var b=this._routes,c=b.length;do--c;while(b[c]&&a._priority<=b[c]._priority);b.splice(c+1,0,a)},_getMatchedRoutes:function(a){var b=[],c=this._routes,d=c.length,e;while(e=c[--d])(!b.length||e.greedy)&&e.match(a)&&b.push({route:e,params:e._getParamsArray(a)});return b},toString:function(){return"[crossroads numRoutes:"+this.getNumRoutes()+"]"}},b=new k,b.VERSION="0.8.0",b.NORM_AS_ARRAY=function(a,b){return[b.vals_]},b.NORM_AS_OBJECT=function(a,b){return[b]},l.prototype={greedy:!1,rules:void 0,match:function(a){return this._matchRegexp.test(a)&&this._validateParams(a)},_validateParams:function(a){var b=this.rules,c=this._getParamsObject(a),d;for(d in b)if(d!=="normalize_"&&b.hasOwnProperty(d)&&!this._isValidParam(a,d,c))return!1;return!0},_isValidParam:function(a,b,c){var e=this.rules[b],i=c[b],j=!1;return i==null&&this._optionalParamsIds&&d(this._optionalParamsIds,b)!==-1?j=!0:f(e)?j=e.test(i):g(e)?j=d(e,i)!==-1:h(e)&&(j=e(i,a,c)),j},_getParamsObject:function(a){var c=this._router.shouldTypecast,d=b.patternLexer.getParamValues(a,this._matchRegexp,c),e={},f=d.length;while(f--)e[f]=d[f],this._paramsIds&&(e[this._paramsIds[f]]=d[f]);return e.request_=c?i(a):a,e.vals_=d,e},_getParamsArray:function(a){var c=this.rules?this.rules.normalize_:null,d;return c=c||this._router.normalizeFn,c&&h(c)?d=c(a,this._getParamsObject(a)):d=b.patternLexer.getParamValues(a,this._matchRegexp,this._router.shouldTypecast),d},dispose:function(){this._router.removeRoute(this)},_destroy:function(){this.matched.dispose(),this.switched.dispose(),this.matched=this.switched=this._pattern=this._matchRegexp=null},toString:function(){return'[Route pattern:"'+this._pattern+'", numListeners:'+this.matched.getNumListeners()+"]"}},b.patternLexer=function(){function w(a,b){var c=[],d;while(d=a.exec(b))c.push(d[1]);return c}function x(a){return w(g,a)}function y(a){return w(f,a)}function z(c){return c=c||"",c&&(c=c.replace(b,""),c=A(c),c=c.replace(a,"\\$&"),c=B(c)),new RegExp("^"+c+"/?$")}function A(a){return a=a.replace(c,"$1"+p+"$2"),a=a.replace(d,"$1"+o+"$2"),a=a.replace(i,n),a=a.replace(h,m),a=a.replace(f,l),a.replace(e,k)}function B(a){return a=a.replace(u,"\\/?"),a=a.replace(v,"\\/"),a=a.replace(t,"(.*)?"),a=a.replace(s,"(.+)"),a=a.replace(r,"([^\\/]+)?/?"),a.replace(q,"([^\\/]+)")}function C(a,b,c){var d=b.exec(a);return d&&(d.shift(),c&&(d=j(d))),d}var a=/[\\.+*?\^$\[\](){}\/'#]/g,b=/\/$/g,c=/([:}]|\w(?=\/))\/?(:)/g,d=/([:}])\/?(\{)/g,e=/\{([^}]+)\}/g,f=/:([^:]+):/g,g=/(?:\{|:)([^}:]+)(?:\}|:)/g,h=/\{([^}]+)\*\}/g,i=/:([^:]+)\*:/g,k="__CR_RP__",l="__CR_OP__",m="__CR_RR__",n="__CR_OR__",o="__CR_RS__",p="__CR_OS__",q=new RegExp(k,"g"),r=new RegExp(l,"g"),s=new RegExp(m,"g"),t=new RegExp(n,"g"),u=new RegExp(p,"g"),v=new RegExp(o,"g");return{getParamIds:x,getOptionalParamsIds:y,getParamValues:C,compilePattern:z}}(),b})})(typeof define=="function"&&define.amd?define:function(a,b){typeof module!="undefined"&&module.exports?module.exports=b(require(a[0])):window.crossroads=b(window[a[0]])})
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crossroadsjs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-03 00:00:00.000000000 Z
12
+ date: 2012-03-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
16
- requirement: &22510320 !ruby/object:Gem::Requirement
16
+ requirement: &21993624 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *22510320
24
+ version_requirements: *21993624
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &22509852 !ruby/object:Gem::Requirement
27
+ requirement: &21993312 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '2.0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *22509852
35
+ version_requirements: *21993312
36
36
  description: Provides Crossroads.js for use with Rails 3
37
37
  email: philostler@gmail.com
38
38
  executables: []
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  version: '0'
77
77
  requirements: []
78
78
  rubyforge_project:
79
- rubygems_version: 1.8.15
79
+ rubygems_version: 1.8.16
80
80
  signing_key:
81
81
  specification_version: 3
82
82
  summary: Crossroads.js for Rails