serenade_rails 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Serenade.js JavaScript Framework v0.2.0
2
+ * Serenade.js JavaScript Framework v0.2.1
3
3
  * http://github.com/elabs/serenade.js
4
4
  *
5
5
  * Copyright 2011, Jonas Nicklas, Elabs AB
@@ -109,6 +109,20 @@
109
109
  isArray: function(object) {
110
110
  return Object.prototype.toString.call(object) === "[object Array]";
111
111
  },
112
+ indexOf: function(object, search) {
113
+ var index, item, _i, _len;
114
+ if (typeof Array.prototype.indexOf === "function") {
115
+ return Array.prototype.indexOf.call(object, search);
116
+ } else {
117
+ for (index = _i = 0, _len = object.length; _i < _len; index = ++_i) {
118
+ item = object[index];
119
+ if (item === search) {
120
+ return index;
121
+ }
122
+ }
123
+ return -1;
124
+ }
125
+ },
112
126
  pairToObject: function(one, two) {
113
127
  var temp;
114
128
  temp = {};
@@ -202,12 +216,12 @@
202
216
  };require['./collection'] = new function() {
203
217
  var exports = this;
204
218
  (function() {
205
- var Events, extend, get, getLength, isArrayIndex, serializeObject, _ref,
219
+ var Events, extend, get, getLength, indexOf, isArrayIndex, serializeObject, _ref,
206
220
  __slice = [].slice;
207
221
 
208
222
  Events = require('./events').Events;
209
223
 
210
- _ref = require('./helpers'), extend = _ref.extend, serializeObject = _ref.serializeObject, get = _ref.get;
224
+ _ref = require('./helpers'), indexOf = _ref.indexOf, extend = _ref.extend, serializeObject = _ref.serializeObject, get = _ref.get;
211
225
 
212
226
  isArrayIndex = function(index) {
213
227
  return index.match(/^\d+$/);
@@ -364,18 +378,7 @@
364
378
  };
365
379
 
366
380
  Collection.prototype.indexOf = function(search) {
367
- var index, item, _i, _len;
368
- if (typeof Array.prototype.indexOf === "function") {
369
- return Array.prototype.indexOf.call(this, search);
370
- } else {
371
- for (index = _i = 0, _len = this.length; _i < _len; index = ++_i) {
372
- item = this[index];
373
- if (item === search) {
374
- return index;
375
- }
376
- }
377
- return -1;
378
- }
381
+ return indexOf(this, search);
379
382
  };
380
383
 
381
384
  Collection.prototype.lastIndexOf = function(search) {
@@ -657,7 +660,7 @@
657
660
  };require['./properties'] = new function() {
658
661
  var exports = this;
659
662
  (function() {
660
- var AssociationCollection, Associations, Collection, Events, Properties, addDependencies, addGlobalDependencies, define, exp, extend, get, globalDependencies, pairToObject, prefix, serializeObject, triggerChangesTo, triggerGlobal, _ref,
663
+ var AssociationCollection, Associations, Collection, Events, Properties, addDependencies, addGlobalDependencies, define, exp, extend, get, globalDependencies, indexOf, pairToObject, prefix, serializeObject, triggerChangesTo, triggerGlobal, _ref,
661
664
  __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
662
665
  __hasProp = {}.hasOwnProperty;
663
666
 
@@ -667,7 +670,7 @@
667
670
 
668
671
  Events = require('./events').Events;
669
672
 
670
- _ref = require('./helpers'), pairToObject = _ref.pairToObject, serializeObject = _ref.serializeObject, extend = _ref.extend, get = _ref.get;
673
+ _ref = require('./helpers'), indexOf = _ref.indexOf, pairToObject = _ref.pairToObject, serializeObject = _ref.serializeObject, extend = _ref.extend, get = _ref.get;
671
674
 
672
675
  prefix = "_prop_";
673
676
 
@@ -718,7 +721,7 @@
718
721
  _ref1 = name.split(/[:\.]/), name = _ref1[0], subname = _ref1[1];
719
722
  }
720
723
  object[_name = "_dep_" + name] || (object[_name] = []);
721
- if (object["_dep_" + name].indexOf(dependency) === -1) {
724
+ if (indexOf(object["_dep_" + name], dependency) === -1) {
722
725
  _results.push(object["_dep_" + name].push(dependency));
723
726
  } else {
724
727
  _results.push(void 0);
@@ -773,7 +776,7 @@
773
776
  _results = [];
774
777
  for (_i = 0, _len = dependencies.length; _i < _len; _i++) {
775
778
  dependency = dependencies[_i];
776
- if (names.indexOf(dependency) === -1) {
779
+ if (indexOf(names, dependency) === -1) {
777
780
  names.push(dependency);
778
781
  _results.push(findDependencies(dependency));
779
782
  } else {
@@ -936,7 +939,9 @@
936
939
  return get(this.get(name), 'id');
937
940
  },
938
941
  set: function(id) {
939
- return this.attributes[name] = attributes.as().find(id);
942
+ if (id != null) {
943
+ return this.set(name, attributes.as().find(id));
944
+ }
940
945
  },
941
946
  dependsOn: name,
942
947
  serialize: attributes.serializeId
@@ -1053,7 +1058,11 @@
1053
1058
  New.modelName = name;
1054
1059
 
1055
1060
  function New() {
1056
- New.__super__.constructor.apply(this, arguments);
1061
+ var val;
1062
+ val = New.__super__.constructor.apply(this, arguments);
1063
+ if (val) {
1064
+ return val;
1065
+ }
1057
1066
  if (ctor) {
1058
1067
  ctor.apply(this, arguments);
1059
1068
  }
@@ -1128,7 +1137,7 @@
1128
1137
  extend(Serenade.prototype, Properties);
1129
1138
 
1130
1139
  extend(Serenade, {
1131
- VERSION: '0.2.0',
1140
+ VERSION: '0.2.1',
1132
1141
  _views: {},
1133
1142
  _controllers: {},
1134
1143
  document: typeof window !== "undefined" && window !== null ? window.document : void 0,
@@ -1141,8 +1150,8 @@
1141
1150
  return new View(void 0, nameOrTemplate);
1142
1151
  }
1143
1152
  },
1144
- render: function(name, model, controller, parent) {
1145
- return this._views[name].render(model, controller, parent);
1153
+ render: function(name, model, controller, parent, skipCallback) {
1154
+ return this._views[name].render(model, controller, parent, skipCallback);
1146
1155
  },
1147
1156
  controller: function(name, klass) {
1148
1157
  return this._controllers[name] = klass;
@@ -1217,7 +1226,7 @@
1217
1226
  };require['./lexer'] = new function() {
1218
1227
  var exports = this;
1219
1228
  (function() {
1220
- var IDENTIFIER, KEYWORDS, LITERAL, Lexer, MULTI_DENT, STRING, WHITESPACE,
1229
+ var COMMENT, IDENTIFIER, KEYWORDS, LITERAL, Lexer, MULTI_DENT, STRING, WHITESPACE,
1221
1230
  __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
1222
1231
 
1223
1232
  IDENTIFIER = /^[a-zA-Z][a-zA-Z0-9\-_]*/;
@@ -1230,6 +1239,8 @@
1230
1239
 
1231
1240
  WHITESPACE = /^[^\r\n\S]+/;
1232
1241
 
1242
+ COMMENT = /^\s*\/\/[^\n]*/;
1243
+
1233
1244
  KEYWORDS = ["IF", "COLLECTION", "IN", "VIEW", "UNLESS"];
1234
1245
 
1235
1246
  Lexer = (function() {
@@ -1249,7 +1260,7 @@
1249
1260
  this.tokens = [];
1250
1261
  i = 0;
1251
1262
  while (this.chunk = this.code.slice(i)) {
1252
- i += this.identifierToken() || this.whitespaceToken() || this.lineToken() || this.stringToken() || this.literalToken();
1263
+ i += this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.stringToken() || this.literalToken();
1253
1264
  }
1254
1265
  while (tag = this.ends.pop()) {
1255
1266
  if (tag === 'OUTDENT') {
@@ -1258,9 +1269,24 @@
1258
1269
  this.error("missing " + tag);
1259
1270
  }
1260
1271
  }
1272
+ while (this.tokens[0][0] === "TERMINATOR") {
1273
+ this.tokens.shift();
1274
+ }
1275
+ while (this.tokens[this.tokens.length - 1][0] === "TERMINATOR") {
1276
+ this.tokens.pop();
1277
+ }
1261
1278
  return this.tokens;
1262
1279
  };
1263
1280
 
1281
+ Lexer.prototype.commentToken = function() {
1282
+ var match;
1283
+ if (match = COMMENT.exec(this.chunk)) {
1284
+ return match[0].length;
1285
+ } else {
1286
+ return 0;
1287
+ }
1288
+ };
1289
+
1264
1290
  Lexer.prototype.whitespaceToken = function() {
1265
1291
  var match;
1266
1292
  if (match = WHITESPACE.exec(this.chunk)) {
@@ -1563,7 +1589,7 @@
1563
1589
  getValue = function(ast, model) {
1564
1590
  if (ast.bound && ast.value) {
1565
1591
  return get(model, ast.value, true);
1566
- } else if (ast.value) {
1592
+ } else if (ast.value != null) {
1567
1593
  return ast.value;
1568
1594
  } else {
1569
1595
  return model;
@@ -1662,8 +1688,9 @@
1662
1688
  classes = classes.concat(value);
1663
1689
  }
1664
1690
  if (classes.length) {
1665
- return element.setAttribute(ast.name, classes.join(' '));
1691
+ return element.className = classes.join(' ');
1666
1692
  } else {
1693
+ element.className = '';
1667
1694
  return element.removeAttribute(ast.name);
1668
1695
  }
1669
1696
  } else if (value === void 0) {
@@ -1695,9 +1722,14 @@
1695
1722
  if ((_ref1 = ast.classes) != null ? _ref1.length : void 0) {
1696
1723
  element.setAttribute('class', ast.classes.join(' '));
1697
1724
  }
1698
- _ref2 = ast.properties;
1725
+ _ref2 = ast.children;
1699
1726
  for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
1700
- property = _ref2[_i];
1727
+ child = _ref2[_i];
1728
+ compile(child, model, controller).append(element);
1729
+ }
1730
+ _ref3 = ast.properties;
1731
+ for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
1732
+ property = _ref3[_j];
1701
1733
  action = Property[property.scope];
1702
1734
  if (action) {
1703
1735
  action(property, node, model, controller);
@@ -1705,17 +1737,16 @@
1705
1737
  throw SyntaxError("" + property.scope + " is not a valid scope");
1706
1738
  }
1707
1739
  }
1708
- _ref3 = ast.children;
1709
- for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
1710
- child = _ref3[_j];
1711
- compile(child, model, controller).append(element);
1712
- }
1713
1740
  return node;
1714
1741
  },
1715
1742
  view: function(ast, model, parent) {
1716
- var controller, element;
1717
- controller = Serenade.controllerFor(ast["arguments"][0]) || parent;
1718
- element = Serenade.render(ast["arguments"][0], model, controller, parent);
1743
+ var controller, element, skipCallback;
1744
+ controller = Serenade.controllerFor(ast["arguments"][0]);
1745
+ if (!controller) {
1746
+ skipCallback = true;
1747
+ controller = parent;
1748
+ }
1749
+ element = Serenade.render(ast["arguments"][0], model, controller, parent, skipCallback);
1719
1750
  return new Node(ast, element);
1720
1751
  },
1721
1752
  helper: function(ast, model, controller) {
@@ -1830,11 +1861,8 @@
1830
1861
  return dynamic;
1831
1862
  },
1832
1863
  "in": function(ast, model, controller) {
1833
- var dynamic, update;
1834
- dynamic = new DynamicNode(ast);
1835
- update = function() {
1836
- var child, nodes, value;
1837
- value = get(model, ast["arguments"][0]);
1864
+ return Compile.bound(ast, model, controller, function(dynamic, value) {
1865
+ var child, nodes;
1838
1866
  if (value) {
1839
1867
  nodes = (function() {
1840
1868
  var _i, _len, _ref1, _results;
@@ -1850,19 +1878,11 @@
1850
1878
  } else {
1851
1879
  return dynamic.clear();
1852
1880
  }
1853
- };
1854
- update();
1855
- if (typeof model.bind === "function") {
1856
- model.bind("change:" + ast["arguments"][0], update);
1857
- }
1858
- return dynamic;
1881
+ });
1859
1882
  },
1860
1883
  "if": function(ast, model, controller) {
1861
- var dynamic, update;
1862
- dynamic = new DynamicNode(ast);
1863
- update = function() {
1864
- var child, nodes, value;
1865
- value = get(model, ast["arguments"][0]);
1884
+ return Compile.bound(ast, model, controller, function(dynamic, value) {
1885
+ var child, nodes;
1866
1886
  if (value) {
1867
1887
  nodes = (function() {
1868
1888
  var _i, _len, _ref1, _results;
@@ -1878,19 +1898,11 @@
1878
1898
  } else {
1879
1899
  return dynamic.clear();
1880
1900
  }
1881
- };
1882
- update();
1883
- if (typeof model.bind === "function") {
1884
- model.bind("change:" + ast["arguments"][0], update);
1885
- }
1886
- return dynamic;
1901
+ });
1887
1902
  },
1888
1903
  unless: function(ast, model, controller) {
1889
- var dynamic, update;
1890
- dynamic = new DynamicNode(ast);
1891
- update = function() {
1892
- var child, nodes, value;
1893
- value = get(model, ast["arguments"][0]);
1904
+ return Compile.bound(ast, model, controller, function(dynamic, value) {
1905
+ var child, nodes;
1894
1906
  if (value) {
1895
1907
  return dynamic.clear();
1896
1908
  } else {
@@ -1906,6 +1918,15 @@
1906
1918
  })();
1907
1919
  return dynamic.replace([nodes]);
1908
1920
  }
1921
+ });
1922
+ },
1923
+ bound: function(ast, model, controller, callback) {
1924
+ var dynamic, update;
1925
+ dynamic = new DynamicNode(ast);
1926
+ update = function() {
1927
+ var value;
1928
+ value = get(model, ast["arguments"][0]);
1929
+ return callback(dynamic, value);
1909
1930
  };
1910
1931
  update();
1911
1932
  if (typeof model.bind === "function") {
@@ -2232,185 +2253,7 @@ parse: function parse(input) {
2232
2253
  return true;
2233
2254
  }
2234
2255
  };
2235
- undefined/* Jison generated lexer */
2236
- var lexer = (function(){
2237
- var lexer = ({EOF:1,
2238
- parseError:function parseError(str, hash) {
2239
- if (this.yy.parser) {
2240
- this.yy.parser.parseError(str, hash);
2241
- } else {
2242
- throw new Error(str);
2243
- }
2244
- },
2245
- setInput:function (input) {
2246
- this._input = input;
2247
- this._more = this._less = this.done = false;
2248
- this.yylineno = this.yyleng = 0;
2249
- this.yytext = this.matched = this.match = '';
2250
- this.conditionStack = ['INITIAL'];
2251
- this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
2252
- if (this.options.ranges) this.yylloc.range = [0,0];
2253
- this.offset = 0;
2254
- return this;
2255
- },
2256
- input:function () {
2257
- var ch = this._input[0];
2258
- this.yytext += ch;
2259
- this.yyleng++;
2260
- this.offset++;
2261
- this.match += ch;
2262
- this.matched += ch;
2263
- var lines = ch.match(/(?:\r\n?|\n).*/g);
2264
- if (lines) {
2265
- this.yylineno++;
2266
- this.yylloc.last_line++;
2267
- } else {
2268
- this.yylloc.last_column++;
2269
- }
2270
- if (this.options.ranges) this.yylloc.range[1]++;
2271
-
2272
- this._input = this._input.slice(1);
2273
- return ch;
2274
- },
2275
- unput:function (ch) {
2276
- var len = ch.length;
2277
- var lines = ch.split(/(?:\r\n?|\n)/g);
2278
-
2279
- this._input = ch + this._input;
2280
- this.yytext = this.yytext.substr(0, this.yytext.length-len-1);
2281
- //this.yyleng -= len;
2282
- this.offset -= len;
2283
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
2284
- this.match = this.match.substr(0, this.match.length-1);
2285
- this.matched = this.matched.substr(0, this.matched.length-1);
2286
-
2287
- if (lines.length-1) this.yylineno -= lines.length-1;
2288
- var r = this.yylloc.range;
2289
-
2290
- this.yylloc = {first_line: this.yylloc.first_line,
2291
- last_line: this.yylineno+1,
2292
- first_column: this.yylloc.first_column,
2293
- last_column: lines ?
2294
- (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length:
2295
- this.yylloc.first_column - len
2296
- };
2297
-
2298
- if (this.options.ranges) {
2299
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
2300
- }
2301
- return this;
2302
- },
2303
- more:function () {
2304
- this._more = true;
2305
- return this;
2306
- },
2307
- less:function (n) {
2308
- this.unput(this.match.slice(n));
2309
- },
2310
- pastInput:function () {
2311
- var past = this.matched.substr(0, this.matched.length - this.match.length);
2312
- return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
2313
- },
2314
- upcomingInput:function () {
2315
- var next = this.match;
2316
- if (next.length < 20) {
2317
- next += this._input.substr(0, 20-next.length);
2318
- }
2319
- return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
2320
- },
2321
- showPosition:function () {
2322
- var pre = this.pastInput();
2323
- var c = new Array(pre.length + 1).join("-");
2324
- return pre + this.upcomingInput() + "\n" + c+"^";
2325
- },
2326
- next:function () {
2327
- if (this.done) {
2328
- return this.EOF;
2329
- }
2330
- if (!this._input) this.done = true;
2331
-
2332
- var token,
2333
- match,
2334
- tempMatch,
2335
- index,
2336
- col,
2337
- lines;
2338
- if (!this._more) {
2339
- this.yytext = '';
2340
- this.match = '';
2341
- }
2342
- var rules = this._currentRules();
2343
- for (var i=0;i < rules.length; i++) {
2344
- tempMatch = this._input.match(this.rules[rules[i]]);
2345
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
2346
- match = tempMatch;
2347
- index = i;
2348
- if (!this.options.flex) break;
2349
- }
2350
- }
2351
- if (match) {
2352
- lines = match[0].match(/(?:\r\n?|\n).*/g);
2353
- if (lines) this.yylineno += lines.length;
2354
- this.yylloc = {first_line: this.yylloc.last_line,
2355
- last_line: this.yylineno+1,
2356
- first_column: this.yylloc.last_column,
2357
- last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length};
2358
- this.yytext += match[0];
2359
- this.match += match[0];
2360
- this.matches = match;
2361
- this.yyleng = this.yytext.length;
2362
- if (this.options.ranges) {
2363
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
2364
- }
2365
- this._more = false;
2366
- this._input = this._input.slice(match[0].length);
2367
- this.matched += match[0];
2368
- token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);
2369
- if (this.done && this._input) this.done = false;
2370
- if (token) return token;
2371
- else return;
2372
- }
2373
- if (this._input === "") {
2374
- return this.EOF;
2375
- } else {
2376
- return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
2377
- {text: "", token: null, line: this.yylineno});
2378
- }
2379
- },
2380
- lex:function lex() {
2381
- var r = this.next();
2382
- if (typeof r !== 'undefined') {
2383
- return r;
2384
- } else {
2385
- return this.lex();
2386
- }
2387
- },
2388
- begin:function begin(condition) {
2389
- this.conditionStack.push(condition);
2390
- },
2391
- popState:function popState() {
2392
- return this.conditionStack.pop();
2393
- },
2394
- _currentRules:function _currentRules() {
2395
- return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
2396
- },
2397
- topState:function () {
2398
- return this.conditionStack[this.conditionStack.length-2];
2399
- },
2400
- pushState:function begin(condition) {
2401
- this.begin(condition);
2402
- }});
2403
- lexer.options = {};
2404
- lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
2405
-
2406
- var YYSTATE=YY_START
2407
- switch($avoiding_name_collisions) {
2408
- }
2409
- };
2410
- lexer.rules = [];
2411
- lexer.conditions = {"INITIAL":{"rules":[],"inclusive":true}};
2412
- return lexer;})()
2413
- parser.lexer = lexer;function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
2256
+ ;function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
2414
2257
  return new Parser;
2415
2258
  })();
2416
2259
  if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
@@ -2475,7 +2318,7 @@ if (typeof module !== 'undefined' && require.main === module) {
2475
2318
  }
2476
2319
  };
2477
2320
 
2478
- View.prototype.render = function(model, controller, parent) {
2321
+ View.prototype.render = function(model, controller, parent, skipCallback) {
2479
2322
  var node;
2480
2323
  if (this.name) {
2481
2324
  controller || (controller = Serenade.controllerFor(this.name, model));
@@ -2485,8 +2328,10 @@ if (typeof module !== 'undefined' && require.main === module) {
2485
2328
  controller = new controller(model, parent);
2486
2329
  }
2487
2330
  node = compile(this.parse(), model, controller);
2488
- if (typeof controller.loaded === "function") {
2489
- controller.loaded(model, node.element);
2331
+ if (!skipCallback) {
2332
+ if (typeof controller.loaded === "function") {
2333
+ controller.loaded(model, node.element);
2334
+ }
2490
2335
  }
2491
2336
  return node.element;
2492
2337
  };
@@ -1,3 +1,3 @@
1
1
  module SerenadeRails
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serenade_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
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-06-23 00:00:00.000000000 Z
12
+ date: 2012-06-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &2156993600 !ruby/object:Gem::Requirement
16
+ requirement: &2153773400 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156993600
24
+ version_requirements: *2153773400
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: execjs
27
- requirement: &2156992880 !ruby/object:Gem::Requirement
27
+ requirement: &2153772900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.3.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2156992880
35
+ version_requirements: *2153772900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &2156992180 !ruby/object:Gem::Requirement
38
+ requirement: &2153772440 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '2.0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2156992180
46
+ version_requirements: *2153772440
47
47
  description: Use Serenade.js within the Rails asset pipeline
48
48
  email:
49
49
  - jonas.nicklas@gmail.com