Commit 79f42163
Changed files (7)
app
assets
javascripts
models
views
my
tutorials
helpers
views
application
spec
javascripts
app/assets/javascripts/models/auto_collection.js.coffee
@@ -1,6 +1,6 @@
class csx.AutoCollection
@install: (collectionName, json) ->
- csx[collectionName] = @create(json)
+ csx.Collections[collectionName] = @create(json)
@create: (json) ->
new Backbone.Collection(json)
app/assets/javascripts/views/my/cakes/edit_view.js.coffee
@@ -35,7 +35,7 @@ class csx.Views.My.Cakes.EditView extends Marionette.CompositeView
onRender: ->
@$("#cake_category_id").val(@model.category_id())
- @ui.tags.tagit({ availableTags: csx.Tags.pluck('name') })
+ @ui.tags.tagit({ availableTags: csx.Collections.Tag.pluck('name') })
@disableSaveButton()
savedSuccessfully: (cake) =>
@@ -68,7 +68,7 @@ class csx.Views.My.Cakes.EditView extends Marionette.CompositeView
serializeData: ->
{
cake: @model.toJSON(),
- categories: csx.Categories.toJSON(),
+ categories: csx.Collections.Category.toJSON(),
}
launchAddPhoto: ->
app/assets/javascripts/views/my/cakes/new_view.js.coffee
@@ -57,5 +57,5 @@ class csx.Views.My.Cakes.NewView extends Marionette.ItemView
serializeData: ->
{
cake: @model.toJSON(),
- categories: csx.Categories.toJSON(),
+ categories: csx.Collection.Category.toJSON(),
}
app/assets/javascripts/views/my/tutorials/new_view.js.coffee
@@ -36,7 +36,7 @@ class csx.Views.My.Tutorials.NewView extends Marionette.ItemView
author_url: attributes.provider_url
onRender: ->
- @ui.tags.tagit({ availableTags: csx.Tags.pluck('name') })
+ @ui.tags.tagit({ availableTags: csx.Collections.Tag.pluck('name') })
validate: ->
@model.isValid()
app/helpers/application_helper.rb
@@ -40,12 +40,10 @@ module ApplicationHelper
end
def backbone_collection_for(items)
- safe_name = items.name.split('::').last
- collection_name = safe_name.pluralize
render partial: 'backbone_collection', locals: {
- collection_name: collection_name,
+ collection_name: items.model_name.human,
items: items,
- partial_name: collection_name.downcase,
+ partial_name: items.model_name.plural,
}
end
end
spec/javascripts/models/auto_collection_spec.js.coffee
@@ -5,9 +5,23 @@ describe "AutoCollection", ->
describe ".install", ->
it "installs a categories collection", ->
- subject.install('Categories', [id: 1, name: 'cakes'])
+ subject.install('Category', [id: 1, name: 'cakes'])
- expect(csx.Categories).not.toBe(undefined)
- expect(csx.Categories.length).toEqual(1)
- expect(csx.Categories.first().get('name')).toEqual('cakes')
+ collection = csx.Collections.Category
+ expect(collection).not.toBe(undefined)
+ expect(collection.length).toEqual(1)
+ expect(collection.first().get('name')).toEqual('cakes')
+
+ it "binds the proper model", ->
+ subject.install('Category', [])
+ expect(csx.Collections.Category.model).toEqual(csx.Models.Category)
+
+ it "binds the proper url", ->
+ subject.install('Cake', [])
+ expect(csx.Collections.Cake.url).toEqual('/api/v1/cakes')
+
+
+#class csx.Collections.CakesCollection extends Backbone.Collection
+ #model: csx.Models.Cake
+ #url: '/api/v1/cakes'