module Stepper::ControllerAdditions::InstanceMethods

Public Instance Methods

create() click to toggle source

controller create action it supports only html responce format for now

# File lib/stepper/controllers/controller_additions.rb, line 53
def create
  respond_to do |format|
    if @_stepper_resource_instance.save
      format.html { redirect_steps }
    else
      @_stepper_resource_instance.previous_step!
      format.html { render :action => "new" }
    end
  end
end
new() click to toggle source

controller new action it supports only html responce format for now

# File lib/stepper/controllers/controller_additions.rb, line 83
def new

end
next_step() click to toggle source

controller new action it supports only html responce format for now

# File lib/stepper/controllers/controller_additions.rb, line 89
def next_step
  if @_stepper_resource_instance.last_step?
    redirect_to :action => :show, :id => @_stepper_resource_instance.id
  else
    render :action => :new
  end
end
update() click to toggle source

controller update action it supports only html responce format for now

# File lib/stepper/controllers/controller_additions.rb, line 66
def update
  @_stepper_resource_instance.previous_step!.previous_step! if params[:commit] == t('stepper.previous_step').html_safe

  @_stepper_resource_instance.previous_step! if params[:commit] == t('stepper.save').html_safe

  respond_to do |format|
    if @_stepper_resource_instance.save
      format.html { redirect_steps }
    else
      @_stepper_resource_instance.previous_step!
      format.html { render :action => "new" }
    end
  end
end

Protected Instance Methods

default_redirection() click to toggle source

default redirection actions

# File lib/stepper/controllers/controller_additions.rb, line 100
def default_redirection
  {
    :next_step      => {:action => "next_step", :id => @_stepper_resource_instance.id},
    :previous_step  => {:action => "next_step"},
    :save           => {:action => "index"},
    :finish         => {:action => "show", :id => @_stepper_resource_instance.id}
  }
end
extract_redirect_params(option) click to toggle source
# File lib/stepper/controllers/controller_additions.rb, line 135
def extract_redirect_params(option)
  redirection = @_stepper_redirect_to["after_#{option.to_s}".to_sym]
  if redirection.is_a?(Proc)
    redirection.call(self, @_stepper_resource_instance)
  else
    redirection
  end || default_redirection[option]
end
redirect_steps() click to toggle source

redirects to controller actions depends of commit value

save -> index
previous_step -> new
next_step -> new
finish -> show
# File lib/stepper/controllers/controller_additions.rb, line 115
def redirect_steps
  options, response_status = redirect_steps_options
  redirect_to options, response_status
end
redirect_steps_options() click to toggle source
# File lib/stepper/controllers/controller_additions.rb, line 120
def redirect_steps_options
  case params[:commit]
    when t('stepper.save')
      [ extract_redirect_params(:save), {}]
    when t('stepper.previous_step')
      [ extract_redirect_params(:previous_step), {}]
    when t('stepper.next_step')
      [ extract_redirect_params(:next_step), {}]
    when t('stepper.finish')
      [ extract_redirect_params(:finish), {}]
    else
     raise Stepper::StepperException.new("Unknown commit: #{params[:commit]}")
  end
end
sanitized_params() click to toggle source

removes from params resource name, commit and id

# File lib/stepper/controllers/controller_additions.rb, line 145
def sanitized_params
  params.except(@_stepper_name, :commit, :id)
end