require 'generators/backbone/model/model_generator' module Backbone module Generators class ScaffoldGenerator < ModelGenerator source_root File.expand_path("../templates", __FILE__) desc "This generator creates the client side crud scaffolding" class_option :single, :type => :boolean, :aliases => "-S", :default => false, :desc => "Single Page Mode" def create_router_files if options[:single] template 'router-sp.coffee', File.join(backbone_path, "routers", class_path, "#{plural_name}_router.js.coffee") else template 'router.coffee', File.join(backbone_path, "routers", class_path, "#{plural_name}_router.js.coffee") end end def create_view_files available_views.each do |view| template "views/#{view}_view.coffee", File.join(backbone_path, "views", plural_name, "#{view}_view.js.coffee") template "templates/#{view}.jst", File.join(backbone_path, "templates", plural_name, "#{view}.jst.ejs") end if options[:single] available_views.each do |view| template "views-sp/#{view}_view.coffee", File.join(backbone_path, "views", plural_name, "#{view}_view.js.coffee") template "templates-sp/#{view}.jst", File.join(backbone_path, "templates", plural_name, "#{view}.jst.ejs") end template "views-sp/model_view.coffee", File.join(backbone_path, "views", plural_name, "#{singular_name}_view.js.coffee") template "templates-sp/model.jst", File.join(backbone_path, "templates", plural_name, "#{singular_name}.jst.ejs") else available_views.each do |view| template "views/#{view}_view.coffee", File.join(backbone_path, "views", plural_name, "#{view}_view.js.coffee") template "templates/#{view}.jst", File.join(backbone_path, "templates", plural_name, "#{view}.jst.ejs") end template "views/model_view.coffee", File.join(backbone_path, "views", plural_name, "#{singular_name}_view.js.coffee") template "templates/model.jst", File.join(backbone_path, "templates", plural_name, "#{singular_name}.jst.ejs") end end protected def available_views %w(index show new edit) end end end end