Class: FormJourney::Parameters
- Inherits:
-
HashWithIndifferentAccess
- Object
- HashWithIndifferentAccess
- FormJourney::Parameters
- Defined in:
- lib/form_journey/parameters.rb
Instance Method Summary collapse
- #[]=(key, value) ⇒ Object
- #add_to_array(*path, value:, unique: false) ⇒ Object
- #clear! ⇒ Object
- #del(*keys) ⇒ Object
- #get(*keys) ⇒ Object
-
#initialize(attributes = nil, session) ⇒ Parameters
constructor
A new instance of Parameters.
- #remove_from_array(*path, value:) ⇒ Object
- #require(key) ⇒ Object
- #set(*keys, value:) ⇒ Object
Constructor Details
#initialize(attributes = nil, session) ⇒ Parameters
Returns a new instance of Parameters.
3 4 5 6 7 |
# 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 |
Instance Method Details
#[]=(key, value) ⇒ Object
14 15 16 17 |
# File 'lib/form_journey/parameters.rb', line 14 def []=(key, value) super update_session end |
#add_to_array(*path, value:, unique: false) ⇒ Object
56 57 58 59 60 61 |
# 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! ⇒ Object
9 10 11 12 |
# File 'lib/form_journey/parameters.rb', line 9 def clear! replace({}) @session.clear end |
#del(*keys) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# 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) ⇒ Object
19 20 21 22 23 24 25 26 |
# 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:) ⇒ Object
63 64 65 66 67 |
# 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) ⇒ Object
69 70 71 |
# File 'lib/form_journey/parameters.rb', line 69 def require(key) ActionController::Parameters.new(to_hash).require(key) end |
#set(*keys, value:) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 |
# 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 |