sticky_params 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9038e51804afe83d423ecc4b4903df48a31fd04923a2ba0e966589ebbbd45585
4
- data.tar.gz: fad2fdf5976803a1f4ca0bc4c913ea410a85bd0ded788886b7400b7744d8fca4
3
+ metadata.gz: 95f2ebe1001e88bac518483e27d299e187c09e5f5002516bee8ce2e259222a75
4
+ data.tar.gz: df3e8ea4586ddd41cc7b759051f51077910d4a6629637e0d0b9586d8cb92f26e
5
5
  SHA512:
6
- metadata.gz: 76ee65c4c4889c7e54e3310a0f16bcee2414d98ab79353be63e12685c30b2df98b7971bf8f311ed24d9b5f144b276ba563ed69c695e877e2f56762b3be4e246b
7
- data.tar.gz: 273163c5f66741711f666326b3960bb120ee657f880a1868eedea7cdc847112cf9152cf5dcf0d50276f6d79b13eff41cffece3c563b24eb849d1b15ac55edbd3
6
+ metadata.gz: cbe4b35d6555c246096d4a90fe404eb2f340336646e30d4e5dde718e3ddfaf17488387f2246775f7a1f4dba2efd5737223a97e68ce3eb18ecc5df5f63374ed69
7
+ data.tar.gz: 1e3d546c073fd3e29ca6578ab6c6776d80d905efcf68a6a45092fed579b16053dc61ee7ad899c43e79eda135d6e85f5d3774edcd86f1dd514c358253054c6608
data/README.md CHANGED
@@ -12,9 +12,14 @@ class MyController < ApplicationController
12
12
  end
13
13
  ```
14
14
 
15
- ## Release Notes 2.0
15
+ ## Release Notes 2.1
16
16
 
17
- Release 2.0 uses ActionController::Parameters instead of hashes.
17
+
18
+ Release 2.1, Sticky Params doesn't put ActionController::Parameters in a sesssion anymore.
19
+ ActionController::Parameters were put directly into a session in 2.0. Which worked in rails < 7.
20
+ In rails 7 this results in a `TypeError (can't dump IO)` when the session data is serialized.
21
+
22
+ Release 2.0, uses ActionController::Parameters instead of hashes.
18
23
  This enable the usage of the strong parameter permit construct.
19
24
  (In other words, sticky_params will work just like normal params)
20
25
 
@@ -10,7 +10,12 @@ module StickyParams
10
10
 
11
11
  def fetch_from_params(name, session_param_name)
12
12
  if controller.params[name].present?
13
- controller.session['sticky_params'][session_param_name] = controller.params[name]
13
+ if controller.params[name].is_a?(ActionController::Parameters)
14
+ controller.session['sticky_params'][session_param_name] = controller.params[name].to_unsafe_hash
15
+ else
16
+ controller.session['sticky_params'][session_param_name] = controller.params[name]
17
+ end
18
+ controller.params[name]
14
19
  else
15
20
  controller.session['sticky_params'].delete session_param_name
16
21
  nil
@@ -19,19 +24,13 @@ module StickyParams
19
24
 
20
25
  def fetch_from_session(session_param_name)
21
26
  result = controller.session['sticky_params'][session_param_name]
22
-
23
27
  # covert hash to action parameters for simulating a normal param
24
- if result.is_a?(Hash)
25
- result = ActionController::Parameters.new(result)
26
- controller.session['sticky_params'][session_param_name] = result
27
- end
28
-
29
- result
28
+ result.is_a?(Hash) ? ActionController::Parameters.new(result) : result
30
29
  end
31
30
 
32
31
  def [](name)
33
32
  session_param_name = "#{prefix}#{name}"
34
- controller.session['sticky_params'] ||= ActionController::Parameters.new
33
+ controller.session['sticky_params'] ||= {}
35
34
  if controller.params[name]
36
35
  fetch_from_params(name, session_param_name)
37
36
  elsif controller.session['sticky_params'][session_param_name]
@@ -41,7 +40,7 @@ module StickyParams
41
40
 
42
41
  def []=(name, value)
43
42
  session_param_name = "#{prefix}#{name}"
44
- controller.session['sticky_params'] ||= ActionController::Parameters.new
43
+ controller.session['sticky_params'] ||= {}
45
44
  controller.session['sticky_params'][session_param_name] = controller.params[name] = value
46
45
  end
47
46
 
@@ -59,4 +58,4 @@ module StickyParams
59
58
  controller.session.delete('sticky_params')
60
59
  end
61
60
  end
62
- end
61
+ end
@@ -1,3 +1,3 @@
1
1
  module StickyParams
2
- VERSION = "2.0.0"
2
+ VERSION = "2.1.0"
3
3
  end
@@ -1,23 +1,21 @@
1
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path("lib", __dir__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
  require 'sticky_params/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'sticky_params'
7
- spec.version = StickyParams::VERSION
6
+ spec.name = 'sticky_params'
7
+ spec.version = StickyParams::VERSION
8
8
 
9
- spec.authors = ['Rick Blommers']
10
- spec.email = ['rick@blommersit.nl']
11
- spec.summary = 'A rails gem that automaticly remembers request parameters between requests'
12
- spec.description = spec.summary
13
- spec.homepage = "https://github.com/gamecreature/sticky_params"
14
- spec.license = 'MIT'
9
+ spec.authors = ['Rick Blommers']
10
+ spec.email = ['rick@blommersit.nl']
11
+ spec.summary = 'A rails gem that automaticly remembers request parameters between requests'
12
+ spec.description = spec.summary
13
+ spec.homepage = "https://github.com/gamecreature/sticky_params"
14
+ spec.license = 'MIT'
15
15
 
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ['lib']
20
-
21
- # spec.add_development_dependency "bundler", "~> 1.7"
22
- # spec.add_development_dependency "rake", "~> 10.0"
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.required_ruby_version = ">= 2.0"
20
+ spec.require_paths = ['lib']
23
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sticky_params
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rick Blommers
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-29 00:00:00.000000000 Z
11
+ date: 2022-11-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A rails gem that automaticly remembers request parameters between requests
14
14
  email:
@@ -32,7 +32,7 @@ homepage: https://github.com/gamecreature/sticky_params
32
32
  licenses:
33
33
  - MIT
34
34
  metadata: {}
35
- post_install_message:
35
+ post_install_message:
36
36
  rdoc_options: []
37
37
  require_paths:
38
38
  - lib
@@ -40,15 +40,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: '0'
43
+ version: '2.0'
44
44
  required_rubygems_version: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  requirements: []
50
- rubygems_version: 3.0.6
51
- signing_key:
50
+ rubygems_version: 3.3.7
51
+ signing_key:
52
52
  specification_version: 4
53
53
  summary: A rails gem that automaticly remembers request parameters between requests
54
54
  test_files: []