ende 0.4.15 → 0.4.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +1 -0
  3. data/lib/assets/javascripts/aura/extensions/widget/lifecycleable.js.coffee +5 -1
  4. data/lib/assets/javascripts/widgets/list/presenter.js.coffee +4 -5
  5. data/lib/assets/javascripts/widgets/support/adapters/olark.js +1 -1
  6. data/lib/assets/javascripts/widgets/viewer/main.js.coffee +94 -30
  7. data/lib/ende/version.rb +1 -1
  8. data/vendor/assets/components/ende_build.js +30 -61
  9. data/vendor/components/indefinido-observable/component.json +3 -7
  10. data/vendor/components/indefinido-observable/lib/observable.js +19 -9
  11. metadata +2 -59
  12. data/build/build.css +0 -111
  13. data/vendor/components/indefinido-observable/.gitignore +0 -15
  14. data/vendor/components/indefinido-observable/.ruby-gemset +0 -1
  15. data/vendor/components/indefinido-observable/.ruby-version +0 -1
  16. data/vendor/components/indefinido-observable/Gemfile +0 -13
  17. data/vendor/components/indefinido-observable/Guardfile +0 -39
  18. data/vendor/components/indefinido-observable/History.md +0 -0
  19. data/vendor/components/indefinido-observable/Readme.md +0 -116
  20. data/vendor/components/indefinido-observable/build/build.js +0 -14798
  21. data/vendor/components/indefinido-observable/build/development.js +0 -339
  22. data/vendor/components/indefinido-observable/build/release.js +0 -14937
  23. data/vendor/components/indefinido-observable/build/test.js +0 -339
  24. data/vendor/components/indefinido-observable/components/chaijs-chai/component.json +0 -46
  25. data/vendor/components/indefinido-observable/components/chaijs-chai/index.js +0 -1
  26. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/assertion.js +0 -132
  27. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/core/assertions.js +0 -1270
  28. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/error.js +0 -60
  29. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/assert.js +0 -1060
  30. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/expect.js +0 -12
  31. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/should.js +0 -76
  32. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +0 -94
  33. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addMethod.js +0 -37
  34. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addProperty.js +0 -40
  35. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/eql.js +0 -124
  36. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/flag.js +0 -32
  37. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getActual.js +0 -19
  38. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +0 -25
  39. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getMessage.js +0 -49
  40. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getName.js +0 -20
  41. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getPathValue.js +0 -102
  42. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getProperties.js +0 -35
  43. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/index.js +0 -108
  44. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/inspect.js +0 -316
  45. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/objDisplay.js +0 -48
  46. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +0 -51
  47. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +0 -54
  48. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/test.js +0 -26
  49. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/transferFlags.js +0 -44
  50. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/type.js +0 -45
  51. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai.js +0 -79
  52. data/vendor/components/indefinido-observable/components/cjohansen-sinon/sinon.js +0 -4290
  53. data/vendor/components/indefinido-observable/components/component-jquery/component.json +0 -14
  54. data/vendor/components/indefinido-observable/components/component-jquery/index.js +0 -9601
  55. data/vendor/components/indefinido-observable/components/kapit-observe-shim/component.json +0 -11
  56. data/vendor/components/indefinido-observable/components/kapit-observe-utils/component.json +0 -13
  57. data/vendor/components/indefinido-observable/karma.conf.js +0 -92
  58. data/vendor/components/indefinido-observable/spec/legacy/observable_spec.js +0 -126
  59. data/vendor/components/indefinido-observable/spec/observable_spec.js +0 -92
  60. data/vendor/components/indefinido-observable/spec/spec_helper.js +0 -8
  61. data/vendor/components/indefinido-observable/spec/vendor/accessors_spec.js +0 -63
  62. data/vendor/components/indefinido-observable/src/lib/adapters/rivets.js.coffee +0 -15
  63. data/vendor/components/indefinido-observable/src/spec/legacy/observable_spec.coffee +0 -132
  64. data/vendor/components/indefinido-observable/src/spec/observable_spec.coffee +0 -85
  65. data/vendor/components/indefinido-observable/src/spec/spec_helper.coffee +0 -5
  66. data/vendor/components/indefinido-observable/src/spec/vendor/accessors_spec.coffee +0 -59
  67. data/vendor/components/indefinido-observable/vendor/spec/boot.js +0 -104
  68. data/vendor/components/indefinido-observable/vendor/spec/jasmine.js +0 -2054
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27f5d1046eba4368d91e2cddff6dc04d33625fc8
4
- data.tar.gz: 84d2ca06c85958ba09d76ef0ad14107da743037c
3
+ metadata.gz: cdb0e99ce35297e3963645d52bd4c9bde6f28bb8
4
+ data.tar.gz: 2b092352c25dea75166f48dddaaf7c029ccc1385
5
5
  SHA512:
6
- metadata.gz: f828b41e587cc7b98b0724079b42a0559321deef5dec4c76eb7a49be06587d7a7bf69ac682a7b6e494817b04f0d9649621c0be5fe032972ca5144f4b50cf790a
7
- data.tar.gz: b34d32b2260ce4f7b79c48730c40c6f6dc4bf7bb27f0c9b1c0483a8fe6e9f480c342684d9741c2c8dc6d5a99856ba860714f60b9bf7054474dc15c9a6663edae
6
+ metadata.gz: 15026887ecce38a682ba33527bb436718e92930cb5aeca86cbc327dab61597af00efec271e0b4d613b1f966cc1a757e4b2dab615f6f000cae362fcc3b0db01a6
7
+ data.tar.gz: 0f1990ca14333df8b9ae5170fb64bd009baf3219e5f3215173e425da81a81de1e28f0b9961daf492a682cc4db621bded98d07878d8d6a077919e3df492789037
@@ -22,6 +22,7 @@ end
22
22
 
23
23
  'use strict'
24
24
 
25
+
25
26
  root = exports ? this
26
27
 
27
28
  define 'aura/extensions/models', <%= models_list.to_json %>, (models...) ->
@@ -76,6 +76,9 @@ define 'aura/extensions/widget/lifecycleable', ->
76
76
  core.inject name, options
77
77
 
78
78
  initialized: ->
79
+ # TODO think how to access parent widget in children ones
80
+ @sandbox._widget ||= @
81
+
79
82
  @sandbox.emit "#{@name}.#{@identifier}.initialized", @
80
83
 
81
84
  started: ->
@@ -85,6 +88,7 @@ define 'aura/extensions/widget/lifecycleable', ->
85
88
  stopped: ->
86
89
  @$el.remove()
87
90
 
91
+
88
92
  (application) ->
89
93
 
90
94
  version: '0.2.0'
@@ -144,4 +148,4 @@ define 'aura/extensions/widget/lifecycleable', ->
144
148
  # Add support for element removal after stoping widget
145
149
  # TODO replace Base.extend inheritance to stampit composition
146
150
  core.Widgets.Base = core.Widgets.Base.extend recyclable
147
- recyclable.super = core.Widgets.Base.__super__
151
+ recyclable.super = core.Widgets.Base.__super__
@@ -1,13 +1,13 @@
1
1
  'use strict'
2
- observable = require('indefinido-observable').mixin
3
2
 
4
- define (model) ->
3
+ define ->
5
4
 
6
5
  (items, luna) ->
7
6
 
8
7
  resource = items[0].resource
9
8
 
10
- searcher: observable
9
+ # TODO create view_model
10
+ searcher:
11
11
  query: ''
12
12
  search: (event, models) ->
13
13
 
@@ -22,8 +22,7 @@ define (model) ->
22
22
 
23
23
  false
24
24
 
25
- # TODO create view_model
26
- list: observable Object.create null,
25
+ list: Object.create null,
27
26
  resource:
28
27
  set: (resource) -> null
29
28
  get: -> resource
@@ -114,7 +114,7 @@ define(function () {
114
114
  update_user: function (user) {
115
115
  user.email && olark('api.visitor.updateEmailAddress', {emailAddress: user.email});
116
116
  user.name && olark('api.visitor.updateFullName' , {fullName: user.name});
117
- user.phone && olark('api.visitor.updatePhoneNumber' , {phoneNumber: user.phone});
117
+ user.phone.toString() && olark('api.visitor.updatePhoneNumber' , {phoneNumber: user.phone.toString()});
118
118
  // TODO rename user._id to user.id
119
119
  user._id && olark('api.visitor.updateCustomFields', {id: user._id});
120
120
  }
@@ -125,7 +125,32 @@ define [
125
125
  viewed: (event, in_view, horizontal, vertical) ->
126
126
  boo[if in_view then 'pride' else 'shame'] event.target
127
127
 
128
- version: '0.2.1'
128
+
129
+ # TODO Move each handler to independent features
130
+ handleable = stampit
131
+ handleables:
132
+ item:
133
+ hover: (event, models) ->
134
+ if event.type == 'mouseenter'
135
+ @hover models.item
136
+ else if event.type == 'mouseleave'
137
+ @hover null
138
+ else
139
+ throw new TypeError 'viewer.handlers.hover: Event type incompatible with hovering.'
140
+
141
+ clicked: (event, models) -> @select models.item
142
+
143
+ , {}, ->
144
+
145
+ throw new TypeError "Widget property is mandatory for handleable stamp" unless @widget?
146
+
147
+ @handlers =
148
+ item:
149
+ clicked: $.proxy @handleables.item.clicked, @widget
150
+ hover : $.proxy @handleables.item.hover , @widget
151
+
152
+ @
153
+ version: '0.2.4'
129
154
 
130
155
  # TODO better separation of concerns
131
156
  # TODO Current remote page that is beign displayed
@@ -156,8 +181,16 @@ define [
156
181
  # We extend presentation.selected just to assign all values of the item model
157
182
  # TODO call presenter to do this job
158
183
  @sandbox.util.extend @presentation.selected , item.model.json?() || item.model
184
+
185
+ # TODO change paramters to item, item.model
159
186
  @sandbox.emit "viewer.#{@identifier}.selected", item.model
160
187
 
188
+ # Called when hover in and out from model
189
+ hover: (item) ->
190
+ # TODO call presenter to do this job
191
+ # @sandbox.util.extend @presentation.hovered , item.model.json?() || item.model
192
+ @sandbox.emit "viewer.#{@identifier}.hovered", item, item && item.model
193
+
161
194
  scope_to: (scope, child_scope) ->
162
195
  # Singuralize in order to accept association scopes, since
163
196
  # association scopes return almost the same kind as of it's
@@ -165,16 +198,14 @@ define [
165
198
  sent_scope = @inflector.singularize scope.resource.toString()
166
199
  current_scope = @inflector.singularize @scope.resource.toString()
167
200
 
201
+ deferred = @sandbox.data.deferred()
202
+
168
203
  if sent_scope != current_scope
169
204
  throw new TypeError "Invalid scope sent to viewer@#{@identifier} sent: '#{sent_scope}', expected: '#{current_scope}'"
170
205
 
171
206
  # For sobsequent usages we must store the scope
172
207
  @scope = scope
173
208
 
174
- # TODO better hierachical event distribution
175
- for { _widget: widget } in @sandbox._children?
176
- widget.scope_to? child_scope
177
-
178
209
  @sandbox.emit "viewer.#{@identifier}.scope_changed", @scope
179
210
 
180
211
  # TODO better scope data binding, and updating
@@ -184,6 +215,15 @@ define [
184
215
 
185
216
  @repopulate()
186
217
 
218
+ # TODO rename this method
219
+ # TODO also move this to an external tag
220
+ statused: (status) ->
221
+ if status
222
+ @status = status
223
+ @sandbox.emit "viewer.#{@identifier}.status_changed", status
224
+ else
225
+ @status
226
+
187
227
  repopulate: ->
188
228
  unless @fetching?
189
229
  if @load?
@@ -194,9 +234,10 @@ define [
194
234
 
195
235
  # TODO store spinner instance, instead of creating a new one every time
196
236
  unless @load?
197
- @load = @sandbox.ui.loader @$el.find '.results .items'
237
+ @load = @sandbox.ui.loader @$results
198
238
 
199
239
  # TODO implement status for viewer widget
240
+ @statused 'loading'
200
241
  @$el.addClass 'idle'
201
242
  @$el.removeClass 'loading'
202
243
 
@@ -231,6 +272,7 @@ define [
231
272
 
232
273
  @fetching.always =>
233
274
  # TODO implement status for viewer widget
275
+ @statused 'loading'
234
276
  @$el.addClass 'idle'
235
277
  @$el.removeClass 'loading'
236
278
 
@@ -239,12 +281,11 @@ define [
239
281
  @load = null
240
282
 
241
283
 
242
- populate: (handlers) ->
243
- sandbox = @sandbox
244
-
245
- @load = @sandbox.ui.loader @$results
284
+ populate: ->
285
+ @load = @sandbox.ui.loader @$el
246
286
 
247
287
  # TODO implement status for viewer widget
288
+ @statused 'loading'
248
289
  @$el.removeClass 'idle'
249
290
  @$el.addClass 'loading'
250
291
 
@@ -269,9 +310,12 @@ define [
269
310
 
270
311
  @load.stop()
271
312
 
272
- @presentation = @presenter records, @scope
313
+ # TODO do not send records as parameter
314
+ @presentation = @presenter records, @scope, @handleable
273
315
 
316
+ # Initialize elements
274
317
  @$el.html templates[@options.resource]
318
+ @$results = @$el.find '.results .items'
275
319
 
276
320
  if records.length
277
321
  # boo.initialize @$el.find '.results .items'
@@ -298,7 +342,7 @@ define [
298
342
 
299
343
 
300
344
  plugins: (options) ->
301
- deferreds = []
345
+ deferreds = [@]
302
346
 
303
347
  deferreds.push paginable widget: @ if options.page
304
348
  deferreds.push scrollable widget: @ if options.scroll
@@ -309,6 +353,7 @@ define [
309
353
  # TODO move this method to an extension
310
354
  syncronize_children: ->
311
355
  @sandbox._children ||= []
356
+ @sandbox._widget ||= @
312
357
 
313
358
  # Add possible new childs
314
359
  @constructor.startAll(@$el).done (widgets...) =>
@@ -318,6 +363,12 @@ define [
318
363
 
319
364
  @sandbox._children = @sandbox._children.concat widgets
320
365
 
366
+ for widget in widgets
367
+ # TODO emit this event only when all siblings have initialized
368
+ @sandbox.emit "#{widget.name}.#{widget.identifier}.siblings_initialized", @sandbox._children
369
+
370
+ true
371
+
321
372
  # TODO better internal aura widget selection
322
373
  # Prevent other child to be instantiated
323
374
  @$el.find('[data-aura-widget]').each (i, element) ->
@@ -401,43 +452,56 @@ define [
401
452
  initialize: (options) ->
402
453
  # TODO import core extensions in another place
403
454
  @resource = @sandbox.resource options.resource
404
- @scope = model = @resource
455
+ @scope = @resource
456
+
457
+ # Instantiate it's on handleable factory
458
+ widget = @
459
+ widgetable = stampit().enclose -> @widget = widget; @
460
+ @handleable = stampit.compose widgetable, handleable
405
461
 
406
462
  {sandbox: {util: {@inflector}}} = @
407
463
 
408
464
  @sandbox.on "viewer.#{@identifier}.scope", @scope_to, @
409
465
 
410
- # Iniitalize plugins
466
+ # Initalize plugins
467
+ # TODO think how to implement plugins api
411
468
  loading = @plugins options
412
469
 
470
+ @statused 'idle'
413
471
  @$el.addClass "viewer widget #{@inflector.cssify @identifier} idle clearfix"
414
472
 
415
- loading.done => @require_custom options
473
+ loading.done (widget) ->
474
+ widget.require_custom options.resource
475
+
476
+ # TODO externalize this code to an extension
477
+ require_custom: (resource) ->
478
+ deferred = @sandbox.data.deferred()
416
479
 
417
- require_custom: (options) ->
418
480
  # Fetch custom templates
419
481
  # TODO better custom templates structure and custom presenter
420
482
  # TODO better segregation of concerns on this code
421
483
  # TODO handle case where custom presenter does not exist!
422
484
  require [
423
- "text!./widgets/viewer/templates/default/#{options.resource}.html"
424
- "./widgets/viewer/presenters/#{options.resource}"
485
+ "text!./widgets/viewer/templates/default/#{resource}.html"
486
+ "./widgets/viewer/presenters/#{resource}"
425
487
  ], (custom_default_template, custom_presenter) =>
426
488
 
427
- # TODO Better way to preserve widgets handlers
428
- handlers =
429
- item:
430
- clicked: (event, models) =>
431
- @select models.item
489
+ unless presenter.hasOwnProperty 'handlers'
490
+ Object.defineProperty presenter, 'handlers',
491
+ get: -> throw new Error "presenter.hanlder is deprecated, please compose upon handleable"
492
+ set: -> throw new Error "presenter.hanlder is deprecated, please compose upon handleable"
432
493
 
433
- presenter.handlers = handlers
494
+ custom_default_template and templates[resource] = custom_default_template
495
+ @presenter = @sandbox.util.extend custom_presenter, presenter if custom_presenter
434
496
 
435
- custom_default_template and templates[options.resource] = custom_default_template
436
- @presenter = @sandbox.util.extend custom_presenter, presenter if custom_presenter
497
+ # Fetch default data
498
+ @populate()
437
499
 
438
- @$results = @$el.find '.results .items'
500
+ deferred.resolveWith @, [resource]
439
501
 
440
- # Fetch default data
441
- @populate handlers
502
+ , (error) =>
503
+ # TODO handle other status codes with xhr error
504
+ @sandbox.logger.error "Error when loading presenter and template for resource '#{resource}':\n\n", error.message + "\n\n", error
505
+ deferred.rejectWith @, arguments
442
506
 
443
- true
507
+ deferred
data/lib/ende/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ende
2
- VERSION = "0.4.15"
2
+ VERSION = "0.4.16"
3
3
  end
@@ -26,14 +26,10 @@ function require(path, parent, orig) {
26
26
  // perform real require()
27
27
  // by invoking the module's
28
28
  // registered function
29
- if (!module._resolving && !module.exports) {
30
- var mod = {};
31
- mod.exports = {};
32
- mod.client = mod.component = true;
33
- module._resolving = true;
34
- module.call(this, mod.exports, require.relative(resolved), mod);
35
- delete module._resolving;
36
- module.exports = mod.exports;
29
+ if (!module.exports) {
30
+ module.exports = {};
31
+ module.client = module.component = true;
32
+ module.call(this, module.exports, require.relative(resolved), module);
37
33
  }
38
34
 
39
35
  return module.exports;
@@ -25038,21 +25034,31 @@ generator = {
25038
25034
  },
25039
25035
 
25040
25036
  observable_for: function (object) {
25037
+ var toJSON;
25038
+
25041
25039
  Object.defineProperty(object, 'observed', {
25042
25040
  configurable: true,
25043
25041
  enumerable: false,
25044
25042
  value: {}
25045
25043
  });
25046
25044
 
25047
- // TODO call the current object.toJSON after this method
25048
- return Object.defineProperty(object, 'toJSON', {
25049
- enumerable: false,
25050
- value: function () {
25051
- // TODO remove underscore dependency
25052
- return observable.unobserve(_.omit(this, observable.ignores));
25053
- // old_to_json()
25054
- }
25055
- });
25045
+ // TODO remove json in favor of the toJSON convention
25046
+ toJSON = object.json || object.toJSON
25047
+
25048
+ if (toJSON) {
25049
+ return Object.defineProperty(object, 'toJSON', {
25050
+ enumerable: false,
25051
+ value: function () {
25052
+ var json;
25053
+
25054
+ // TODO remove underscore dependency
25055
+ // TODO ? move toJSON and observed to other methods
25056
+ json = toJSON.apply(this, arguments);
25057
+ return observable.unobserve(_.omit(json, observable.ignores, ['toJSON', 'observed']));
25058
+ }
25059
+ });
25060
+
25061
+ }
25056
25062
  },
25057
25063
 
25058
25064
  // TODO improve readability
@@ -32246,54 +32252,11 @@ require.register("ened/vendor/assets/javascripts/polyfills/es6-map-shim.js", fun
32246
32252
  }.call(this, window));
32247
32253
 
32248
32254
  });
32249
-
32250
-
32251
-
32252
-
32253
-
32254
-
32255
-
32256
-
32257
-
32258
-
32259
-
32260
-
32261
-
32262
-
32263
-
32264
-
32265
-
32266
-
32267
-
32268
-
32269
-
32270
-
32271
-
32272
-
32273
-
32274
-
32275
-
32276
-
32277
-
32278
-
32279
-
32280
-
32281
-
32282
-
32283
-
32284
-
32285
-
32286
-
32287
-
32288
-
32289
-
32290
-
32291
-
32292
-
32293
32255
  require.alias("mikeric-rivets/dist/rivets.js", "ened/deps/rivets/dist/rivets.js");
32294
32256
  require.alias("mikeric-rivets/dist/rivets.js", "ened/deps/rivets/index.js");
32295
32257
  require.alias("mikeric-rivets/dist/rivets.js", "rivets/index.js");
32296
32258
  require.alias("mikeric-rivets/dist/rivets.js", "mikeric-rivets/index.js");
32259
+
32297
32260
  require.alias("segmentio-extend/index.js", "ened/deps/extend/index.js");
32298
32261
  require.alias("segmentio-extend/index.js", "extend/index.js");
32299
32262
 
@@ -32301,10 +32264,12 @@ require.alias("pluma-assimilate/dist/assimilate.js", "ened/deps/assimilate/dist/
32301
32264
  require.alias("pluma-assimilate/dist/assimilate.js", "ened/deps/assimilate/index.js");
32302
32265
  require.alias("pluma-assimilate/dist/assimilate.js", "assimilate/index.js");
32303
32266
  require.alias("pluma-assimilate/dist/assimilate.js", "pluma-assimilate/index.js");
32267
+
32304
32268
  require.alias("paulmillr-es6-shim/es6-shim.js", "ened/deps/es6-shim/es6-shim.js");
32305
32269
  require.alias("paulmillr-es6-shim/es6-shim.js", "ened/deps/es6-shim/index.js");
32306
32270
  require.alias("paulmillr-es6-shim/es6-shim.js", "es6-shim/index.js");
32307
32271
  require.alias("paulmillr-es6-shim/es6-shim.js", "paulmillr-es6-shim/index.js");
32272
+
32308
32273
  require.alias("component-type/index.js", "ened/deps/type/index.js");
32309
32274
  require.alias("component-type/index.js", "type/index.js");
32310
32275
 
@@ -32322,6 +32287,7 @@ require.alias("components-modernizr/modernizr.js", "ened/deps/modernizr/moderniz
32322
32287
  require.alias("components-modernizr/modernizr.js", "ened/deps/modernizr/index.js");
32323
32288
  require.alias("components-modernizr/modernizr.js", "modernizr/index.js");
32324
32289
  require.alias("components-modernizr/modernizr.js", "components-modernizr/index.js");
32290
+
32325
32291
  require.alias("indefinido-indemma/index.js", "ened/deps/indemma/index.js");
32326
32292
  require.alias("indefinido-indemma/vendor/stampit.js", "ened/deps/indemma/vendor/stampit.js");
32327
32293
  require.alias("indefinido-indemma/vendor/sinon.js", "ened/deps/indemma/vendor/sinon.js");
@@ -32350,6 +32316,7 @@ require.alias("indefinido-indemma/index.js", "indemma/index.js");
32350
32316
  require.alias("pluma-assimilate/dist/assimilate.js", "indefinido-indemma/deps/assimilate/dist/assimilate.js");
32351
32317
  require.alias("pluma-assimilate/dist/assimilate.js", "indefinido-indemma/deps/assimilate/index.js");
32352
32318
  require.alias("pluma-assimilate/dist/assimilate.js", "pluma-assimilate/index.js");
32319
+
32353
32320
  require.alias("component-type/index.js", "indefinido-indemma/deps/type/index.js");
32354
32321
 
32355
32322
  require.alias("component-bind/index.js", "indefinido-indemma/deps/bind/index.js");
@@ -32424,4 +32391,6 @@ require.alias("component-value/index.js", "component-dom/deps/value/index.js");
32424
32391
  require.alias("component-type/index.js", "component-value/deps/type/index.js");
32425
32392
 
32426
32393
  require.alias("component-value/index.js", "component-value/index.js");
32394
+
32427
32395
  require.alias("component-query/index.js", "component-dom/deps/query/index.js");
32396
+
@@ -8,21 +8,17 @@
8
8
  "component/jquery": "*"
9
9
  },
10
10
  "development": {
11
- "chaijs/chai": "*"
11
+ "chaijs/chai": "*",
12
+ "components/cjohansen-sinon/sinon.js": "*"
12
13
  },
13
14
  "license": "WTFPL",
14
15
  "scripts": [
15
- "components/cjohansen-sinon/sinon.js",
16
-
17
16
  "index.js",
18
-
19
17
  "lib/observable.js",
20
-
21
18
  "lib/adapters/rivets.js",
22
-
23
19
  "vendor/shims/accessors.js",
24
20
  "vendor/shims/accessors-legacy.js",
25
21
  "vendor/shims/array.indexOf.js",
26
22
  "vendor/shims/object.create.js"
27
23
  ]
28
- }
24
+ }
@@ -223,21 +223,31 @@ generator = {
223
223
  },
224
224
 
225
225
  observable_for: function (object) {
226
+ var toJSON;
227
+
226
228
  Object.defineProperty(object, 'observed', {
227
229
  configurable: true,
228
230
  enumerable: false,
229
231
  value: {}
230
232
  });
231
233
 
232
- // TODO call the current object.toJSON after this method
233
- return Object.defineProperty(object, 'toJSON', {
234
- enumerable: false,
235
- value: function () {
236
- // TODO remove underscore dependency
237
- return observable.unobserve(_.omit(this, observable.ignores));
238
- // old_to_json()
239
- }
240
- });
234
+ // TODO remove json in favor of the toJSON convention
235
+ toJSON = object.json || object.toJSON
236
+
237
+ if (toJSON) {
238
+ return Object.defineProperty(object, 'toJSON', {
239
+ enumerable: false,
240
+ value: function () {
241
+ var json;
242
+
243
+ // TODO remove underscore dependency
244
+ // TODO ? move toJSON and observed to other methods
245
+ json = toJSON.apply(this, arguments);
246
+ return observable.unobserve(_.omit(json, observable.ignores, ['toJSON', 'observed']));
247
+ }
248
+ });
249
+
250
+ }
241
251
  },
242
252
 
243
253
  // TODO improve readability
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ende
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.15
4
+ version: 0.4.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heitor Salazar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-15 00:00:00.000000000 Z
11
+ date: 2014-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -67,7 +67,6 @@ files:
67
67
  - README.md
68
68
  - Rakefile
69
69
  - WTFP-LICENSE
70
- - build/build.css
71
70
  - component.json
72
71
  - ende.gemspec
73
72
  - lib/assets/.gitkeep
@@ -355,70 +354,14 @@ files:
355
354
  - vendor/components/indefinido-indemma/vendor/owl/pluralize.js
356
355
  - vendor/components/indefinido-indemma/vendor/sinon.js
357
356
  - vendor/components/indefinido-indemma/vendor/stampit.js
358
- - vendor/components/indefinido-observable/.gitignore
359
- - vendor/components/indefinido-observable/.ruby-gemset
360
- - vendor/components/indefinido-observable/.ruby-version
361
- - vendor/components/indefinido-observable/Gemfile
362
- - vendor/components/indefinido-observable/Guardfile
363
- - vendor/components/indefinido-observable/History.md
364
- - vendor/components/indefinido-observable/Readme.md
365
- - vendor/components/indefinido-observable/build/build.js
366
- - vendor/components/indefinido-observable/build/development.js
367
- - vendor/components/indefinido-observable/build/release.js
368
- - vendor/components/indefinido-observable/build/test.js
369
357
  - vendor/components/indefinido-observable/component.json
370
- - vendor/components/indefinido-observable/components/chaijs-chai/component.json
371
- - vendor/components/indefinido-observable/components/chaijs-chai/index.js
372
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai.js
373
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/assertion.js
374
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/core/assertions.js
375
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/error.js
376
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/assert.js
377
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/expect.js
378
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/should.js
379
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addChainableMethod.js
380
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addMethod.js
381
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addProperty.js
382
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/eql.js
383
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/flag.js
384
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getActual.js
385
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js
386
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getMessage.js
387
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getName.js
388
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getPathValue.js
389
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getProperties.js
390
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/index.js
391
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/inspect.js
392
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/objDisplay.js
393
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteMethod.js
394
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteProperty.js
395
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/test.js
396
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/transferFlags.js
397
- - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/type.js
398
- - vendor/components/indefinido-observable/components/cjohansen-sinon/sinon.js
399
- - vendor/components/indefinido-observable/components/component-jquery/component.json
400
- - vendor/components/indefinido-observable/components/component-jquery/index.js
401
- - vendor/components/indefinido-observable/components/kapit-observe-shim/component.json
402
- - vendor/components/indefinido-observable/components/kapit-observe-utils/component.json
403
358
  - vendor/components/indefinido-observable/index.js
404
- - vendor/components/indefinido-observable/karma.conf.js
405
359
  - vendor/components/indefinido-observable/lib/adapters/rivets.js
406
360
  - vendor/components/indefinido-observable/lib/observable.js
407
- - vendor/components/indefinido-observable/spec/legacy/observable_spec.js
408
- - vendor/components/indefinido-observable/spec/observable_spec.js
409
- - vendor/components/indefinido-observable/spec/spec_helper.js
410
- - vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
411
- - vendor/components/indefinido-observable/src/lib/adapters/rivets.js.coffee
412
- - vendor/components/indefinido-observable/src/spec/legacy/observable_spec.coffee
413
- - vendor/components/indefinido-observable/src/spec/observable_spec.coffee
414
- - vendor/components/indefinido-observable/src/spec/spec_helper.coffee
415
- - vendor/components/indefinido-observable/src/spec/vendor/accessors_spec.coffee
416
361
  - vendor/components/indefinido-observable/vendor/shims/accessors-legacy.js
417
362
  - vendor/components/indefinido-observable/vendor/shims/accessors.js
418
363
  - vendor/components/indefinido-observable/vendor/shims/array.indexOf.js
419
364
  - vendor/components/indefinido-observable/vendor/shims/object.create.js
420
- - vendor/components/indefinido-observable/vendor/spec/boot.js
421
- - vendor/components/indefinido-observable/vendor/spec/jasmine.js
422
365
  - vendor/components/mikeric-rivets/component.json
423
366
  - vendor/components/mikeric-rivets/dist/rivets.js
424
367
  - vendor/components/paulmillr-es6-shim/component.json