Commit 58e49cf1

mo khan <mo@mokhan.ca>
2014-07-06 05:07:16
extract a cakes controller from the cakes router.
1 parent ec81051
Changed files (3)
app
app/assets/javascripts/backbone/controllers/cakes_controller.js.coffee
@@ -0,0 +1,26 @@
+class CakeSide.Controllers.CakesController
+  index: ->
+    CakeSide.Application.request('CommentView').hide()
+    @view = new CakeSide.Views.Cakes.IndexView(collection: CakeSide.Application.request('CakesRepository'))
+    CakeSide.Application.content_region.show(@view)
+
+  show: (id) ->
+    cake = CakeSide.Application.request('CakesRepository').get(id)
+    @view = new CakeSide.Views.Cakes.ShowView(model: cake)
+    CakeSide.Application.content_region.show(@view)
+    CakeSide.Application.request('CommentView').render
+      identifier: "c-#{cake.id}"
+      title: cake.get('name')
+      url: cake.public_url()
+
+  newCake: ->
+    CakeSide.Application.request('CommentView').hide()
+    @view = new CakeSide.Views.Cakes.NewView(collection: CakeSide.Application.request('CakesRepository'))
+    CakeSide.Application.content_region.show(@view)
+
+  edit: (id) ->
+    CakeSide.Application.request('CommentView').hide()
+    cake = CakeSide.Application.request('CakesRepository').get(id)
+    @view = new CakeSide.Views.Cakes.EditView(model: cake)
+    CakeSide.Application.content_region.show(@view)
+
app/assets/javascripts/backbone/routers/cakes_router.js.coffee
@@ -1,31 +1,8 @@
-class CakeSide.Routers.CakesRouter extends Backbone.Router
-  routes:
+class CakeSide.Routers.CakesRouter extends Marionette.AppRouter
+  controller: new CakeSide.Controllers.CakesController()
+  appRoutes:
     "cakes/new": "newCake"
     "cakes/:id/edit": "edit"
     "cakes/:id": "show"
     "cakes": "index"
 
-  index: ->
-    CakeSide.Application.request('CommentView').hide()
-    @view = new CakeSide.Views.Cakes.IndexView(collection: CakeSide.Application.request('CakesRepository'))
-    CakeSide.Application.content_region.show(@view)
-
-  show: (id) ->
-    cake = CakeSide.Application.request('CakesRepository').get(id)
-    @view = new CakeSide.Views.Cakes.ShowView(model: cake)
-    CakeSide.Application.content_region.show(@view)
-    CakeSide.Application.request('CommentView').render
-      identifier: "c-#{cake.id}"
-      title: cake.get('name')
-      url: cake.public_url()
-
-  newCake: ->
-    CakeSide.Application.request('CommentView').hide()
-    @view = new CakeSide.Views.Cakes.NewView(collection: CakeSide.Application.request('CakesRepository'))
-    CakeSide.Application.content_region.show(@view)
-
-  edit: (id) ->
-    CakeSide.Application.request('CommentView').hide()
-    cake = CakeSide.Application.request('CakesRepository').get(id)
-    @view = new CakeSide.Views.Cakes.EditView(model: cake)
-    CakeSide.Application.content_region.show(@view)
app/assets/javascripts/backbone/cakeside.js.coffee
@@ -2,6 +2,7 @@
 #= require_tree ./templates
 #= require_tree ./models
 #= require_tree ./views
+#= require_tree ./controllers
 #= require_tree ./routers
 
 window.CakeSide =
@@ -9,6 +10,7 @@ window.CakeSide =
   Collections: {}
   Routers: {}
   Views: {}
+  Controllers: {}
   initialize: (data) ->
     $(document).ajaxSend  (event, xhr) ->
       if data.access_token