class <%= controller_class_name %>Controller < ApplicationController
  def index
    @<%= controller_plural_name %> = <%= class_name %>.paginate(:all, :page => params[:page], :per_page => params[:per_page])
    @page_title = "Listing <%= class_name.pluralize.titleize %>"
    
    respond_to do |format|
      format.html # index.html.<%= templating %>
      format.xml  { render :xml  => @<%= controller_plural_name %> }
      format.json { render :json => @<%= controller_plural_name %> }
    end
  end

  def show
    @<%= controller_singular_name %> = <%= class_name %>.find(params[:id])
    @page_title = "Displaying <%= class_name.titleize %> #{@<%= controller_singular_name %>.to_param}"
    
    respond_to do |format|
      format.html # show.html.<%= templating %>
      format.xml  { render :xml  => @<%= controller_singular_name %> }
      format.json { render :json => @<%= controller_singular_name %> }
    end
  end

  def new
    @<%= controller_singular_name %> = <%= class_name %>.new(params[:<%= controller_singular_name %>])
    @page_title = "Add a new <%= class_name.titleize %>"
    
    respond_to do |format|
      format.html # new.html.<%= templating %>
      format.xml  { render :xml  => @<%= controller_singular_name %> }
      format.json { render :json => @<%= controller_singular_name %> }
    end
  end

  def edit
    @<%= controller_singular_name %> = <%= class_name %>.find(params[:id])
    @page_title = "Editing <%= class_name.titleize %> #{@<%= controller_singular_name %>.to_param}"
  end

  def create
    @<%= controller_singular_name %> = <%= class_name %>.new(params[:<%= controller_singular_name %>])
    @page_title = "Adding a new <%= class_name.titleize %>"
    
    respond_to do |format|
      if @<%= controller_singular_name %>.save
        flash[:notice] = '<%= controller_singular_name.humanize %> was successfully created.'
        format.html { redirect_to(<%= controller_member_path %>_path(@<%= controller_singular_name %>)) }
        format.xml  { render :xml  => @<%= controller_singular_name %>, :status => :created, :location => @<%= controller_singular_name %> }
        format.json { render :json => @<%= controller_singular_name %>, :status => :created, :location => @<%= controller_singular_name %> }
      else
        flash[:error] = '<%= controller_singular_name.humanize %> could not be created.'
        format.html { render :action => "new" }
        format.xml  { render :xml  => @<%= controller_singular_name %>.errors, :status => :unprocessable_entity }
        format.json { render :json => @<%= controller_singular_name %>.errors, :status => :unprocessable_entity }
      end
    end
  end

  def update
    @<%= controller_singular_name %> = <%= class_name %>.find(params[:id])
    @page_title = "Updating <%= class_name.titleize %> #{@<%= controller_singular_name %>.to_param}"
    
    respond_to do |format|
      if @<%= controller_singular_name %>.update_attributes(params[:<%= controller_singular_name %>])
        flash[:notice] = '<%= controller_singular_name.humanize %> was successfully updated.'
        format.html { redirect_to(<%= controller_member_path %>_path(@<%= controller_singular_name %>)) }
        format.xml  { head :ok }
        format.json { head :ok }
      else
        flash[:error] = '<%= controller_singular_name.humanize %> could not be updated.'
        format.html { render :action => "edit" }
        format.xml  { render :xml  => @<%= controller_singular_name %>.errors, :status => :unprocessable_entity }
        format.json { render :json => @<%= controller_singular_name %>.errors, :status => :unprocessable_entity }
      end
    end
  end

  def destroy
    @<%= controller_singular_name %> = <%= class_name %>.find(params[:id])
    @page_title = 'Removing <%= class_name.titleize %> #{@<%= controller_singular_name %>.to_param}'
    @<%= controller_singular_name %>.destroy

    respond_to do |format|
      flash[:notice] = '<%= controller_singular_name.humanize %> was successfully removed.'
      format.html { redirect_to(<%= table_name %>_url) }
      format.xml  { head :ok }
      format.json { head :ok }
    end
  end
end