class StickyParams::SessionParams
Attributes
controller[R]
prefix[RW]
Public Class Methods
new(controller)
click to toggle source
# File lib/sticky_params/session_params.rb, line 6 def initialize(controller) @controller = controller @prefix = "#{controller.controller_name}_#{controller.action_name}_" end
Public Instance Methods
[](name)
click to toggle source
# File lib/sticky_params/session_params.rb, line 11 def [](name) session_param_name = "#{prefix}#{name}" controller.session['sticky_params'] ||= {} if controller.params[name] if controller.params[name].present? controller.session['sticky_params'][session_param_name] = controller.params[name] else controller.session['sticky_params'].delete session_param_name nil end elsif controller.session['sticky_params'][session_param_name] controller.session['sticky_params'][session_param_name] end end
[]=(name, value)
click to toggle source
# File lib/sticky_params/session_params.rb, line 26 def []=(name, value) session_param_name = "#{prefix}#{name}" controller.session['sticky_params'] ||= {} controller.session['sticky_params'][session_param_name] = controller.params[name] = value end
clear!()
click to toggle source
clears all sticky params for the current controller/action name
# File lib/sticky_params/session_params.rb, line 33 def clear! if controller.session['sticky_params'].present? controller.session['sticky_params'].reject! do |key, _value| key.index(prefix) == 0 end end end
clear_all!()
click to toggle source
clears all sticky parameters
# File lib/sticky_params/session_params.rb, line 42 def clear_all! controller.session.delete('sticky_params') end