Sha256: a3e6cea2725b12c6dfdbb5488ccf6a8bbc157d0b9f14fc4185701f03a33e7744

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 KB

Contents

require 'generators/pbw/model_generator'

module Pbw
	module Generators
		class ScaffoldGenerator < ModelGenerator

			def create_router_files 
				template 'router.coffee', File.join(backbone_path, "routers", class_path, "#{plural_name}_router.js.coffee")
			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
				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

			def create_resources
				generate "model", "#{model_namespace}::#{class_name} #{attributes.map{|attr| "#{attr.name}:#{attr.type}"}.join(' ')}"
				template "index.erb", "app/views/#{plural_name}/index.html.erb"
				generate "controller", "#{plural_name} index --skip"
				gsub_file "app/models/#{model_namespace.downcase}/#{file_name}.rb", "class #{model_namespace}::#{class_name}", "class #{model_namespace}::#{class_name} < #{base_model_class}"
				gsub_file "app/models/#{model_namespace.downcase}/#{file_name}.rb", "include Mongoid::Document", ""
			end

			protected
			def available_views
				%w(index show new edit)
			end
		end
	end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pbw-0.0.8 lib/generators/pbw/scaffold_generator.rb
pbw-0.0.7 lib/generators/pbw/scaffold_generator.rb