Module: StashableParams

Defined in:
lib/stashable_params.rb,
lib/stashable_params/version.rb

Constant Summary collapse

VERSION =
"0.0.2"

Instance Method Summary collapse

Instance Method Details

#filter_params(hash, filter) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/stashable_params.rb', line 12

def filter_params(hash, filter)
  filtered_hash = hash
  filtered_hash.each do |k, v|
    if filter.include?(k) || filter.include?(k.to_sym)
      filtered_hash.delete(k)
    else
      filter_params(v, filter) if v.is_a?(Hash)
    end
  end
  filtered_hash
end

#params_filterObject



24
25
26
# File 'lib/stashable_params.rb', line 24

def params_filter
  [:password, :password_confirmation, :action, :controller]
end

#stash_paramsObject



4
5
6
# File 'lib/stashable_params.rb', line 4

def stash_params
  session[:stashed_params] = filter_params(params, params_filter)
end

#unstash_paramsObject



8
9
10
# File 'lib/stashable_params.rb', line 8

def unstash_params
  params.merge!(session.delete(:stashed_params)) if session[:stashed_params]
end