class FormJourney::Parameters
Public Class Methods
new(attributes = nil, session)
click to toggle source
Calls superclass method
# File lib/form_journey/parameters.rb, line 3 def initialize(attributes = nil, session) @session = (session || {}) @session.deep_merge!(attributes.deep_symbolize_keys) if attributes super(@session) end
Public Instance Methods
[]=(key, value)
click to toggle source
Calls superclass method
# File lib/form_journey/parameters.rb, line 14 def []=(key, value) super update_session end
add_to_array(*path, value:, unique: false)
click to toggle source
# File lib/form_journey/parameters.rb, line 56 def add_to_array(*path, value:, unique: false) array = Array(get(*path)) array << value array.uniq! if unique set(*path, value: array) end
clear!()
click to toggle source
# File lib/form_journey/parameters.rb, line 9 def clear! replace({}) @session.clear end
del(*keys)
click to toggle source
# File lib/form_journey/parameters.rb, line 28 def del(*keys) parent_param = self while !keys.empty? return nil if parent_param.nil? if keys.length == 1 del_param = parent_param.try(:delete, keys.shift) update_session return del_param end parent_param = parent_param[keys.shift] end end
get(*keys)
click to toggle source
# File lib/form_journey/parameters.rb, line 19 def get(*keys) params = to_hash while !keys.empty? return nil if params.nil? params = params[keys.shift.to_s] end params end
remove_from_array(*path, value:)
click to toggle source
# File lib/form_journey/parameters.rb, line 63 def remove_from_array(*path, value:) array = Array(get(*path)) array.select! { |v| v != value } set(*path, value: array) end
require(key)
click to toggle source
# File lib/form_journey/parameters.rb, line 69 def require(key) ActionController::Parameters.new(to_hash).require(key) end
set(*keys, value:)
click to toggle source
# File lib/form_journey/parameters.rb, line 42 def set(*keys, value:) parent_param = self while !keys.empty? return nil if parent_param.nil? if keys.length == 1 parent_param[keys.shift] = value update_session return self end parent_param = parent_param[keys.shift] end end
Private Instance Methods
update_session()
click to toggle source
# File lib/form_journey/parameters.rb, line 75 def update_session @session.clear @session.merge!(deep_symbolize_keys) end