summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2020-01-27 12:33:40 -0800
committerJeremy Evans <code@jeremyevans.net>2020-01-27 12:39:05 -0800
commit3df5ded9871eb8a9a39c025b50a3bb6a59e156d2 (patch)
tree2836603d0dc60e5f301fec258bbf8e37e0782b3b
parent837f29eaf6518771e728b422107de2b4a4bcf5af (diff)
downloadrack-3df5ded9871eb8a9a39c025b50a3bb6a59e156d2.tar.gz
Avoid use of unnecessary refinement
This is only used in a single place, it is better to use a unified approach. After Ruby 2.4 support is dropped, we can switch back stringify_keys back, and avoid the refinement.
-rw-r--r--lib/rack/session/abstract/id.rb19
1 files changed, 6 insertions, 13 deletions
diff --git a/lib/rack/session/abstract/id.rb b/lib/rack/session/abstract/id.rb
index bffd7f7d..6ee02502 100644
--- a/lib/rack/session/abstract/id.rb
+++ b/lib/rack/session/abstract/id.rb
@@ -44,18 +44,6 @@ module Rack
# SessionHash is responsible to lazily load the session from store.
class SessionHash
- using Module.new {
- refine Hash do
- def transform_keys(&block)
- hash = {}
- each do |key, value|
- hash[block.call(key)] = value
- end
- hash
- end
- end
- } unless {}.respond_to?(:transform_keys)
-
include Enumerable
attr_writer :id
@@ -206,7 +194,12 @@ module Rack
end
def stringify_keys(other)
- other.to_hash.transform_keys(&:to_s)
+ # Use transform_keys after dropping Ruby 2.4 support
+ hash = {}
+ other.to_hash.each do |key, value|
+ hash[key.to_s] = value
+ end
+ hash
end
end