joosy 1.2.0.alpha.38 → 1.2.0.alpha.41

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/Gruntfile.coffee +15 -7
  3. data/bower.json +4 -3
  4. data/lib/extensions/resources.js +11 -3
  5. data/lib/joosy.js +235 -300
  6. data/package.json +3 -3
  7. data/spec/helpers/ground.coffee +33 -0
  8. data/spec/helpers/matchers.coffee +65 -0
  9. data/spec/joosy/core/application_spec.coffee +8 -8
  10. data/spec/joosy/core/helpers/view_spec.coffee +9 -5
  11. data/spec/joosy/core/helpers/widgets_spec.coffee +43 -10
  12. data/spec/joosy/core/joosy_spec.coffee +42 -50
  13. data/spec/joosy/core/layout_spec.coffee +30 -34
  14. data/spec/joosy/core/modules/container_spec.coffee +79 -76
  15. data/spec/joosy/core/modules/events_spec.coffee +148 -81
  16. data/spec/joosy/core/modules/filters_spec.coffee +68 -49
  17. data/spec/joosy/core/modules/log_spec.coffee +13 -5
  18. data/spec/joosy/core/modules/module_spec.coffee +24 -14
  19. data/spec/joosy/core/modules/renderer_spec.coffee +95 -89
  20. data/spec/joosy/core/modules/time_manager_spec.coffee +11 -16
  21. data/spec/joosy/core/modules/widget_manager_spec.coffee +89 -71
  22. data/spec/joosy/core/page_spec.coffee +201 -137
  23. data/spec/joosy/core/templaters/jst_spec.coffee +62 -0
  24. data/spec/joosy/core/widget_spec.coffee +25 -29
  25. data/spec/joosy/extensions/form/form_spec.coffee +3 -1
  26. data/spec/joosy/extensions/resources/base_spec.coffee +3 -0
  27. data/spec/joosy/extensions/resources/collection_spec.coffee +3 -0
  28. data/spec/joosy/extensions/resources/rest_collection_spec.coffee +3 -0
  29. data/spec/joosy/extensions/resources/rest_spec.coffee +3 -0
  30. data/src/joosy/core/application.coffee +1 -7
  31. data/src/joosy/core/helpers/view.coffee +12 -0
  32. data/src/joosy/core/helpers/widgets.coffee +19 -9
  33. data/src/joosy/core/joosy.coffee +0 -23
  34. data/src/joosy/core/layout.coffee +7 -5
  35. data/src/joosy/core/module.coffee +24 -4
  36. data/src/joosy/core/modules/container.coffee +29 -28
  37. data/src/joosy/core/modules/events.coffee +85 -72
  38. data/src/joosy/core/modules/filters.coffee +3 -1
  39. data/src/joosy/core/modules/renderer.coffee +91 -74
  40. data/src/joosy/core/modules/widgets_manager.coffee +12 -9
  41. data/src/joosy/core/page.coffee +7 -14
  42. data/src/joosy/core/templaters/{rails_jst.coffee → jst.coffee} +21 -19
  43. data/src/joosy/core/widget.coffee +3 -3
  44. data/src/joosy/extensions/resources/base.coffee +8 -3
  45. data/src/joosy/extensions/resources/rest.coffee +8 -0
  46. data/src/joosy/extensions/resources/rest_collection.coffee +1 -0
  47. data/tasks/joosy.coffee +46 -17
  48. data/templates/application/base/pages/welcome/index.coffee +5 -5
  49. data/templates/application/base/templates/layouts/application.jst.hamlc +2 -2
  50. data/templates/application/base/templates/pages/welcome/index.jst.hamlc +2 -2
  51. data/templates/application/standalone/Gruntfile.coffee +3 -1
  52. metadata +6 -5
  53. data/spec/helpers/helper.coffee +0 -68
  54. data/spec/joosy/core/templaters/rails_jst_spec.coffee +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d4b561d444a57bfd3a4d64ff5b106e663122563b
4
- data.tar.gz: 0a51e8ca9ea31faae650610fe23612f3d963c69c
3
+ metadata.gz: 252dbaf8a2f50e26135188ca12a3d6151ae7da41
4
+ data.tar.gz: 1c753810d56861515d9142086a55b6ef427f1979
5
5
  SHA512:
6
- metadata.gz: 3290124949732e0c8c94c1e9df8346fd90443bf093546fe0e1276a177702ebfb6a9c5e3c12c10ddf06303774265e590f9179173911467137678504236b9ab693
7
- data.tar.gz: 33466aae0b6c8a9efd02d9692b7f6d23a2786301b430800277e27320f382b52818b520a432a3ef0d65de28b3820bc93e9c640568c936b35321b2006b1c654716
6
+ metadata.gz: c5e488a95b25e278757fd05c4176e92987630798e8e423723917787b6931744fd621154220dcde2e80229fabfd15d7b8be8f38f4a5be26ee5d268a0ca36595d8
7
+ data.tar.gz: 4ede038e7ce8d2dc41e0f160462f64bd71d9d6fa9801361259e168b1f99edc7b133228756ed1338b8e442d69c8a30f8a3dedc709ab9a5fa2b325b8fd3514652e
data/Gruntfile.coffee CHANGED
@@ -22,16 +22,14 @@ module.exports = (grunt) ->
22
22
  helpers: 'spec/helpers/**/*.*'
23
23
  build: '.grunt'
24
24
 
25
- specOptions = (category, specs) ->
25
+ specOptions = (category, specs, vendor=[]) ->
26
26
  host: 'http://localhost:8888/'
27
27
  keepRunner: true
28
28
  outfile: "#{category}.html"
29
29
  vendor: [
30
30
  'bower_components/sinonjs/sinon.js',
31
- 'bower_components/sugar/release/sugar-full.min.js',
32
- 'bower_components/jquery/jquery.js',
33
- 'bower_components/jquery-form/jquery.form.js'
34
- ],
31
+ 'bower_components/sugar/release/sugar-full.min.js'
32
+ ].concat(vendor),
35
33
  specs: "#{locations.specs.build}/#{specs}"
36
34
  helpers: locations.specs.build + '/' + locations.specs.helpers
37
35
 
@@ -104,11 +102,21 @@ module.exports = (grunt) ->
104
102
 
105
103
  jasmine:
106
104
  core:
107
- options: specOptions('core', locations.specs.units.core)
105
+ options: specOptions('core', locations.specs.units.core, [
106
+ 'bower_components/jquery/jquery.js'
107
+ ])
108
108
  src: locations.source.build
109
109
 
110
+ zepto:
111
+ options: specOptions('zepto', locations.specs.units.core, [
112
+ 'bower_components/zepto/zepto.js'
113
+ ])
114
+ src: locations.source.build
110
115
  extensions:
111
- options: specOptions('extensions', locations.specs.units.extensions)
116
+ options: specOptions('extensions', locations.specs.units.extensions, [
117
+ 'bower_components/jquery/jquery.js',
118
+ 'bower_components/jquery-form/jquery.form.js'
119
+ ])
112
120
  src: [locations.source.build].include ['preloaders', 'resources', 'resources-form'].map (x) ->
113
121
  locations.source.extensions(x).build
114
122
 
data/bower.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joosy",
3
- "version": "1.2.0-alpha.38",
3
+ "version": "1.2.0-alpha.41",
4
4
  "main": "lib/joosy.js",
5
5
  "ignore": [
6
6
  "bin",
@@ -16,9 +16,10 @@
16
16
  "dependencies": {
17
17
  "jquery": "~1.10.1",
18
18
  "sugar": "~1.3.9",
19
- "jquery-form": "latest"
19
+ "jquery-form": "~3.37.0"
20
20
  },
21
21
  "devDependencies": {
22
- "sinonjs": "~1.7.1"
22
+ "sinonjs": "~1.7.1",
23
+ "zepto": "~1.0.0"
23
24
  }
24
25
  }
@@ -160,8 +160,10 @@ Joosy.Resources.Base = (function(_super) {
160
160
 
161
161
  Base.prototype.__get = function(path) {
162
162
  var target;
163
- target = this.__callTarget(path);
164
- if (target[0] instanceof Joosy.Resources.Base) {
163
+ target = this.__callTarget(path, true);
164
+ if (!target) {
165
+ return void 0;
166
+ } else if (target[0] instanceof Joosy.Resources.Base) {
165
167
  return target[0](target[1]);
166
168
  } else {
167
169
  return target[0][target[1]];
@@ -180,14 +182,20 @@ Joosy.Resources.Base = (function(_super) {
180
182
  return null;
181
183
  };
182
184
 
183
- Base.prototype.__callTarget = function(path) {
185
+ Base.prototype.__callTarget = function(path, safe) {
184
186
  var keyword, part, target, _i, _len;
187
+ if (safe == null) {
188
+ safe = false;
189
+ }
185
190
  if (path.has(/\./) && (this.data[path] == null)) {
186
191
  path = path.split('.');
187
192
  keyword = path.pop();
188
193
  target = this.data;
189
194
  for (_i = 0, _len = path.length; _i < _len; _i++) {
190
195
  part = path[_i];
196
+ if (safe && (target[part] == null)) {
197
+ return false;
198
+ }
191
199
  target[part] || (target[part] = {});
192
200
  if (target instanceof Joosy.Resources.Base) {
193
201
  target = target(part);