Sha256: 00386a47f811e0473ab5ea352ca3539270081628be2109792ee719482970a39f

Contents?: true

Size: 1.18 KB

Versions: 4

Compression:

Stored size: 1.18 KB

Contents

module Puffer
  class Base < ApplicationController
    unloadable

    pufferize!
    define_fieldset :index, :form
    define_fieldset :show, :fallbacks => :index
    define_fieldset :create, :update, :fallbacks => :form

    respond_to :html, :js

    def index
      @records = resource.collection
    end

    def show
      @record = resource.member
    end

    def new
      @record = resource.new_member
    end

    def edit
      @record = resource.member
    end

    def create
      @record = resource.new_member
      @record.save
      respond_with @record, :location => puffer_saving_location
    end

    def update
      @record = resource.member
      @record.update_attributes resource.attributes
      respond_with @record, :location => puffer_saving_location
    end

    def destroy
      @record = resource.member
      @record.destroy
      redirect_to (request.referrer || resource.collection_path)
    end

    def event
      render :text => fields(params[:fieldset])[params[:field]].render(self, params[:event])
    end

  private

    def puffer_saving_location
      params[:commit] == t('puffer.save') ? resource.edit_path(record) : resource.collection_path
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
puffer-0.0.28 app/controllers/puffer/base.rb
puffer-0.0.26 app/controllers/puffer/base.rb
puffer-0.0.25 app/controllers/puffer/base.rb
puffer-0.0.24 app/controllers/puffer/base.rb