29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/remember_params.rb', line 29
def restore_or_save_params
return unless request.get?
return unless respond_to? :remember_params_config
return unless config = self.remember_params_config[action_name]
session[:remembered_params] ||= {}
key = params.slice(:controller, :action).values.join('/').parameterize
params_to_remember = params.permit(*config[:params]).to_h
if params_to_remember.empty? &&
session[:remembered_params][key]&.except('remembered_at')&.select{|_,v| v.present?}&.any? &&
DateTime.parse(session[:remembered_params][key]['remembered_at']) >
(DateTime.now - config[:duration])
then
redirect_to params: session[:remembered_params][key].except('remembered_at')
end
if params_to_remember.any?
params_to_remember['remembered_at'] = DateTime.now
session[:remembered_params][key] = params_to_remember
end
end
|