ende 0.3.12 → 0.3.13

Sign up to get free protection for your applications and to get access to all the features.
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