From fa472b5f80381bcbe7bb9b66f3f3e567b899dc1e Mon Sep 17 00:00:00 2001 From: Joshua Buermann Date: Wed, 31 Jan 2024 13:35:22 -0800 Subject: [PATCH] Fix integer key bug the arises in latest ruby --- .rubocop.yml | 26 +++++++++++++------------- .ruby-version | 2 +- CHANGELOG.md | 5 +++++ lib/camel_snake_keys.rb | 4 ++-- lib/version.rb | 2 +- 5 files changed, 22 insertions(+), 17 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index bc8b03e..0573a32 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,13 +1,13 @@ -AllCops: - TargetRubyVersion: 2.3 - NewCops: enable - Exclude: - - 'spec/**/*' - - 'vendor/**/*' - -Metrics/CyclomaticComplexity: - Max: 12 - -Style/PerlBackrefs: - Enabled: false - +AllCops: + TargetRubyVersion: 2.3 + NewCops: enable + Exclude: + - 'spec/**/*' + - 'vendor/**/*' + +Metrics/CyclomaticComplexity: + Max: 12 + +Style/PerlBackrefs: + Enabled: false + diff --git a/.ruby-version b/.ruby-version index cb2b00e..15a2799 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0.1 +3.3.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d009ee..95ae464 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +1.0.0 01/31/2024 +================ + +Don't let integer hash keys raise your enemies up. Test against Ruby 3.3.0. + 0.1.0 10/14/2022 ================ diff --git a/lib/camel_snake_keys.rb b/lib/camel_snake_keys.rb index 4ac984a..12c1859 100644 --- a/lib/camel_snake_keys.rb +++ b/lib/camel_snake_keys.rb @@ -56,7 +56,7 @@ def snake_keys(data) when Array data.map { |v| snake_keys(v) } when Hash - hash = data.sort_by { |k, _v| k =~ /_/ ? 0 : 1 }.to_h { |k, v| [if_underscore(k), snake_keys(v)] } + hash = data.sort_by { |k, _v| k.to_s =~ /_/ ? 0 : 1 }.to_h { |k, v| [if_underscore(k), snake_keys(v)] } data.instance_of?(Hash) ? hash : data.class.new(hash) else data @@ -68,7 +68,7 @@ def camel_keys(data) when Array data.map { |v| camel_keys(v) } when Hash - hash = data.sort_by { |k, _v| k =~ /_/ ? 1 : 0 }.to_h { |k, v| [if_camelize(k), camel_keys(v)] } + hash = data.sort_by { |k, _v| k.to_s =~ /_/ ? 1 : 0 }.to_h { |k, v| [if_camelize(k), camel_keys(v)] } data.instance_of?(Hash) ? hash : data.class.new(hash) else data diff --git a/lib/version.rb b/lib/version.rb index a17ffc9..0d9b9b2 100644 --- a/lib/version.rb +++ b/lib/version.rb @@ -2,7 +2,7 @@ # Store the version of the gem here rather than the gemspec module CamelSnakeKeys - VERSION = '0.1.0' + VERSION = '1.0.0' def self.version VERSION