class Marionette::ScaffoldGenerator
Public Instance Methods
scaffold()
click to toggle source
# File lib/generators/marionette/scaffold/scaffold_generator.rb, line 55 def scaffold generate "marionette:model #{@one.camelcase} #{@schema.map {|a| "#{a[0]}:#{a[1]}"}.join(' ')}" #form template 'templates/_form.jst.eco', "#{backbone_path}/app/templates/#{@many.underscore}/_form.jst.eco" #empty generate "marionette:view #{@many.underscore}/_empty ItemView --without-template" template 'templates/_empty.jst.eco', "#{backbone_path}/app/templates/#{@many.underscore}/_empty.jst.eco" #post generate "marionette:view #{@many.underscore}/_#{@one.underscore} ItemView --without-template" view_attr @many.underscore + "/_#{@one.underscore}", %( tagName: "tr" triggers: "click .#{@one.underscore}-delete" : "#{@one.underscore}:delete:clicked" ) template 'templates/_post.jst.eco', "#{backbone_path}/app/templates/#{@many.underscore}/_#{@one.underscore}.jst.eco" #edit generate "marionette:view #{@many.underscore}/edit CompositeView --without-template" view_attr @many.underscore + '/edit', %( triggers: "click .#{@one.underscore}-save" : "#{@many.underscore}:save:clicked" onShow: -> Backbone.Syphon.deserialize(@, @.model.attributes) @listenTo @, "#{@many.underscore}:save:clicked", (child, args) -> data = Backbone.Syphon.serialize(@) #{@one.underscore} = child.model #{@one.underscore}.set(data) #{@one.underscore}.saveSuccess = (check, und, model, response) -> App.navigate '#{@many.underscore}/' + response.id #{@one.underscore}.saveError = (check, und, model, response) -> console.log response alert('error') #{@one.underscore}.save() ) template 'templates/edit.jst.eco', "#{backbone_path}/app/templates/#{@many.underscore}/edit.jst.eco" #index generate "marionette:view #{@many.underscore}/index CompositeView --without-template" view_attr @many.underscore + '/index', %( childView: #{@many.camelcase}.#{@one.camelcase} emptyView: #{@many.camelcase}.Empty childViewContainer: "tbody" onShow: -> @listenTo @, "childview:#{@one.underscore}:delete:clicked", (child, args) -> model = args.model if confirm "Are you sure you want to delete \#{model.get("name")}?" model.destroy() ) template 'templates/index.jst.eco', "#{backbone_path}/app/templates/#{@many.underscore}/index.jst.eco" #new generate "marionette:view #{@many.underscore}/new CompositeView --without-template" view_attr @many.underscore + '/new', %( triggers: "click .#{@one.underscore}-create" : "#{@many.underscore}:create:clicked" onShow: -> @listenTo @, "#{@many.underscore}:create:clicked", (child, args) -> data = Backbone.Syphon.serialize(@) #{@one.underscore} = new App.Entities.All.#{@one.camelcase} #{@one.underscore}.set(data) #{@one.underscore}.saveSuccess = (check, und, model, response) -> App.navigate '#{@many.underscore}/' + response.id #{@one.underscore}.saveError = (check, und, model, response) -> console.log response alert('error') #{@one.underscore}.save() ) template 'templates/new.jst.eco', "#{backbone_path}/app/templates/#{@many.underscore}/new.jst.eco" #show generate "marionette:view #{@many.underscore}/show CompositeView --without-template" view_attr @many.underscore + '/show', %( triggers: "click .#{@one.underscore}-delete" : "#{@one.underscore}:delete:clicked" onShow: -> @listenTo @, "#{@one.underscore}:delete:clicked", (child, args) -> model = child.model if confirm "Are you sure you want to delete \#{model.get("name")}?" model.destroy() App.navigate '/#{@many.underscore}' ) template 'templates/show.jst.eco', "#{backbone_path}/app/templates/#{@many.underscore}/show.jst.eco" generate "marionette:controller #{@many.underscore}" controller_attr @module.underscore + '/' + @many.underscore + '_controller', :index, %( #{@many.underscore} = new App.Entities.All.#{@one.camelcase}Collection #{@many.underscore}.fetch reset: true @layout = new App.Views.Layouts.ApplicationLayout @listenTo @layout, "show", => indexView = new App.Views.#{@many.camelcase}.Index(collection: #{@many.underscore}) @show indexView, region: @layout.bodyRegion, loading: true @show @layout, loading: false ) controller_attr @module.underscore + '/' + @many.underscore + '_controller', :new, %( @layout = new App.Views.Layouts.ApplicationLayout @listenTo @layout, "show", => newView = new App.Views.#{@many.camelcase}.New @show newView, region: @layout.bodyRegion, loading: true @show @layout, loading: false ) controller_attr @module.underscore + '/' + @many.underscore + '_controller', :show, %( #{@one.underscore} = new App.Entities.All.#{@one.camelcase} id: args.id #{@one.underscore}.fetch reset: true @layout = new App.Views.Layouts.ApplicationLayout @listenTo @layout, "show", => showView = new App.Views.#{@many.camelcase}.Show(model: #{@one.underscore}) @show showView, region: @layout.bodyRegion, loading: true @show @layout, loading: false ) controller_attr @module.underscore + '/' + @many.underscore + '_controller', :edit, %( #{@one.underscore} = new App.Entities.All.#{@one.camelcase} id: args.id #{@one.underscore}.fetch reset: true @layout = new App.Views.Layouts.ApplicationLayout @listenTo @layout, "show", => editView = new App.Views.#{@many.camelcase}.Edit(model: #{@one.underscore}) @show editView, region: @layout.bodyRegion, loading: true @show @layout, loading: false ) marionette_route(@many.underscore, :edit) marionette_route(@many.underscore, :show) marionette_route(@many.underscore, :new) marionette_route(@many.underscore, :index) if @rails generate "scaffold #{@one.camelcase} #{@schema.map {|a| "#{a[0]}:#{a[1]}"}.join(' ')}" gsub_file 'config/routes.rb', "\n resources :#{@many.underscore}" do |match| %( scope :api, constraints: { format: 'json' } do resources :#{@many.underscore} end ) end end end
vars()
click to toggle source
# File lib/generators/marionette/scaffold/scaffold_generator.rb, line 39 def vars @module = 'All' if @title =~ /\// parse = @title.match /(.*)\/(.*)/ @title = parse[2] @module = parse[1] end @rails = options[:rails] @one = @title.singularize @many = @title.pluralize @attributes = [] @schema.each do |a| @attributes << Marionette::Attribute.new(a[0], a[1]) end end