require 'rubygems' require 'bivouac/utils' module Bivouac class Generate add_generator [:scaffold] private def scaffold if @app.environment.orgtype.downcase == "erb" raise "ERB applications are no longer supported. Sorry!" end # Scaffold options argument_options = OptionParser.new do |opts| opts.banner = "" opts.separator "scaffold generator options:" opts.on_tail("-h", "--help", "Show this message") do help puts opts exit end end # parse options if view name is not passed argument_options.parse! @script_arguments if @script_arguments.length < 1 help puts argument_options exit end @script_arguments.each do |scaffold| @scaffold_class = scaffold.classify @scaffold_view = @scaffold_class.underscore # Generate model and migrate model( scaffold ) # Generate scaffold controllers destination_file = File.dirname( $0 ) + "/../app/controllers/" + @scaffold_class.underscore + ".rb" createFile( destination_file ) do |io| io.puts plugin_template( File.join( File.expand_path( File.dirname(__FILE__) ), "template/scaffold_controller_begin.rb" ), binding ) io.puts plugin_template( File.join( File.expand_path( File.dirname(__FILE__) ), "template/scaffold_controller_list.rb" ), binding ) io.puts plugin_template( File.join( File.expand_path( File.dirname(__FILE__) ), "template/scaffold_controller_create.rb" ), binding ) io.puts plugin_template( File.join( File.expand_path( File.dirname(__FILE__) ), "template/scaffold_controller_view.rb" ), binding ) io.puts plugin_template( File.join( File.expand_path( File.dirname(__FILE__) ), "template/scaffold_controller_end.rb" ), binding ) end # Create view Directory scaffold_view_directory = File.dirname( $0 ) + "/../app/views/" + @scaffold_view createDir( scaffold_view_directory ) # Generate scaffold views destination_file = scaffold_view_directory + "/list_" + @scaffold_class.underscore + ".rb" createFile( destination_file ) do |io| io.puts plugin_template( File.join( File.expand_path( File.dirname(__FILE__) ), "template/scaffold_view_list.rb" ), binding ) end destination_file = scaffold_view_directory + "/create_" + @scaffold_class.underscore + ".rb" createFile( destination_file ) do |io| io.puts plugin_template( File.join( File.expand_path( File.dirname(__FILE__) ), "template/scaffold_view_create.rb" ), binding ) end destination_file = scaffold_view_directory + "/view_" + @scaffold_class.underscore + ".rb" createFile( destination_file ) do |io| io.puts plugin_template( File.join( File.expand_path( File.dirname(__FILE__) ), "template/scaffold_view_view.rb" ), binding ) end end end end end