Class: StickyParams::SessionParams

Inherits:
Object
  • Object
show all
Defined in:
lib/sticky_params/session_params.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(controller) ⇒ SessionParams

Returns a new instance of SessionParams.



6
7
8
9
# File 'lib/sticky_params/session_params.rb', line 6

def initialize(controller)
  @controller = controller
  @prefix = "#{controller.controller_name}_#{controller.action_name}_"
end

Instance Attribute Details

#controller ⇒ Object (readonly)

Returns the value of attribute controller.



3
4
5
# File 'lib/sticky_params/session_params.rb', line 3

def controller
  @controller
end

#prefix ⇒ Object

Returns the value of attribute prefix.



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

def prefix
  @prefix
end

Instance Method Details

#[](name) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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) ⇒ Object



26
27
28
29
30
# 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! ⇒ Object

clears all sticky params for the current controller/action name



33
34
35
36
37
38
39
# 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! ⇒ Object

clears all sticky parameters



42
43
44
# File 'lib/sticky_params/session_params.rb', line 42

def clear_all!
  controller.session.delete('sticky_params')
end