ende 0.4.15 → 0.4.16

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.
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