ende 0.3.12 → 0.3.13

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0da97c41b5dc3465944322b1ece15ec3be43654c
4
- data.tar.gz: a98863c9f0045fd41a98637525489715140fa862
3
+ metadata.gz: 857b7d175f476f673248c3c9a0ddee276913fa0e
4
+ data.tar.gz: 6d18ac351c4b2de2c4bda63c06a8ecfe24c3bb84
5
5
  SHA512:
6
- metadata.gz: 044da7f2be4b59eafdcd02a44e7812408664e4e5fc72fe07e774cfed10e80157cde7bcdbc065300b92a29ab8fdc08d0a4f61e8f1ef2e02b6539a7812f2920002
7
- data.tar.gz: f077995aab9837b6ab9ca75a69e9e7361bb6412febe1858e04b83da7b0506a6345b6ff67ac1c3f535eb6aed244790163d02f0800c5d838089bca7a96320b9003
6
+ metadata.gz: 2f3f412ed571b37ad797fe61210e1e743707ae4f91280736ba7e143953763176692c917b196fcd74c67fdfc0c55591133857b6c321f18ee3b52178b218d38f2c
7
+ data.tar.gz: b62a0062319c9b5de96e2e6bf9753a0e3307dc96dc437203da3418094b9a43be266fb93a1ff00a29936ce871942928fc018c04901f9be80bd93895fcf719c276
@@ -129,7 +129,32 @@ define [
129
129
  viewed: (event, in_view, horizontal, vertical) ->
130
130
  boo[if in_view then 'pride' else 'shame'] event.target
131
131
 
132
- version: '0.2.2'
132
+
133
+ # TODO Move each handler to independent features
134
+ handleable = stampit
135
+ handleables:
136
+ item:
137
+ hover: (event, models) ->
138
+ if event.type == 'mouseenter'
139
+ @hover models.item
140
+ else if event.type == 'mouseleave'
141
+ @hover null
142
+ else
143
+ throw new TypeError 'viewer.handlers.hover: Event type incompatible with hovering.'
144
+
145
+ clicked: (event, models) -> @select models.item
146
+
147
+ , {}, ->
148
+
149
+ throw new TypeError "Widget property is mandatory for handleable stamp" unless @widget?
150
+
151
+ @handlers =
152
+ item:
153
+ clicked: $.proxy @handleables.item.clicked, @widget
154
+ hover : $.proxy @handleables.item.hover , @widget
155
+
156
+ @
157
+ version: '0.2.4'
133
158
 
134
159
  # TODO better separation of concerns
135
160
  # TODO Current remote page that is beign displayed
@@ -213,7 +238,7 @@ define [
213
238
 
214
239
  # TODO store spinner instance, instead of creating a new one every time
215
240
  unless @load?
216
- @load = @sandbox.ui.loader @$el.find '.results .items'
241
+ @load = @sandbox.ui.loader @$results
217
242
 
218
243
  # TODO implement status for viewer widget
219
244
  @statused 'loading'
@@ -260,10 +285,8 @@ define [
260
285
  @load = null
261
286
 
262
287
 
263
- populate: (handlers) ->
264
- sandbox = @sandbox
265
-
266
- @load = @sandbox.ui.loader @$results
288
+ populate: ->
289
+ @load = @sandbox.ui.loader @$el
267
290
 
268
291
  # TODO implement status for viewer widget
269
292
  @statused 'loading'
@@ -291,9 +314,12 @@ define [
291
314
 
292
315
  @load.stop()
293
316
 
294
- @presentation = @presenter records, @scope
317
+ # TODO do not send records as parameter
318
+ @presentation = @presenter records, @scope, @handleable
295
319
 
320
+ # Initialize elements
296
321
  @$el.html templates[@options.resource]
322
+ @$results = @$el.find '.results .items'
297
323
 
298
324
  if records.length
299
325
  # boo.initialize @$el.find '.results .items'
@@ -430,7 +456,12 @@ define [
430
456
  initialize: (options) ->
431
457
  # TODO import core extensions in another place
432
458
  @resource = @sandbox.resource options.resource
433
- @scope = model = @resource
459
+ @scope = @resource
460
+
461
+ # Instantiate it's on handleable factory
462
+ widget = @
463
+ widgetable = stampit().enclose -> @widget = widget; @
464
+ @handleable = stampit.compose widgetable, handleable
434
465
 
435
466
  {sandbox: {util: {@inflector}}} = @
436
467
 
@@ -459,30 +490,16 @@ define [
459
490
  "./widgets/viewer/presenters/#{resource}"
460
491
  ], (custom_default_template, custom_presenter) =>
461
492
 
462
- # TODO Better way to preserve widgets handlers
463
- # TODO Move each handler to independent features
464
- handlers =
465
- item:
466
- hover: (event, models) =>
467
- if event.type == 'mouseenter'
468
- @hover models.item
469
- else if event.type == 'mouseleave'
470
- @hover null
471
- else
472
- throw new TypeError 'viewer.handlers.hover: Event type incompatible with hovering.'
473
-
474
- clicked: (event, models) =>
475
- @select models.item
476
-
477
- presenter.handlers = handlers
493
+ unless presenter.hasOwnProperty 'handlers'
494
+ Object.defineProperty presenter, 'handlers',
495
+ get: -> throw new Error "presenter.hanlder is deprecated, please compose upon handleable"
496
+ set: -> throw new Error "presenter.hanlder is deprecated, please compose upon handleable"
478
497
 
479
498
  custom_default_template and templates[resource] = custom_default_template
480
499
  @presenter = @sandbox.util.extend custom_presenter, presenter if custom_presenter
481
500
 
482
- @$results ||= @$el.find '.results .items'
483
-
484
501
  # Fetch default data
485
- @populate handlers
502
+ @populate()
486
503
 
487
504
  deferred.resolveWith @, [resource]
488
505
 
data/lib/ende/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ende
2
- VERSION = "0.3.12"
2
+ VERSION = "0.3.13"
3
3
  end
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.3.12
4
+ version: 0.3.13
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-19 00:00:00.000000000 Z
11
+ date: 2014-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler