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