From 82f7550f65f9872f6d7bff1a876395c23bbd7fc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Barri=C3=A9?= Date: Mon, 21 Oct 2024 12:04:56 +0200 Subject: [PATCH] Use frozen string literals Co-authored-by: Jean Boussier --- ext/json/lib/json.rb | 2 +- ext/json/lib/json/add/bigdecimal.rb | 2 +- ext/json/lib/json/add/complex.rb | 2 +- ext/json/lib/json/add/core.rb | 2 +- ext/json/lib/json/add/date.rb | 2 +- ext/json/lib/json/add/date_time.rb | 2 +- ext/json/lib/json/add/exception.rb | 2 +- ext/json/lib/json/add/ostruct.rb | 2 +- ext/json/lib/json/add/range.rb | 2 +- ext/json/lib/json/add/rational.rb | 2 +- ext/json/lib/json/add/regexp.rb | 2 +- ext/json/lib/json/add/struct.rb | 2 +- ext/json/lib/json/add/symbol.rb | 3 +- ext/json/lib/json/add/time.rb | 2 +- ext/json/lib/json/common.rb | 14 +++------ ext/json/lib/json/generic_object.rb | 2 +- ext/json/lib/json/version.rb | 2 +- ext/json/parser/extconf.rb | 2 +- test/json/json_addition_test.rb | 5 ++- test/json/json_common_interface_test.rb | 2 +- test/json/json_encoding_test.rb | 42 ++++++++++++------------- test/json/json_ext_parser_test.rb | 2 +- test/json/json_fixtures_test.rb | 2 +- test/json/json_generator_test.rb | 6 ++-- test/json/json_generic_object_test.rb | 2 +- test/json/json_parser_test.rb | 6 ++-- test/json/json_string_matching_test.rb | 2 +- test/json/ractor_test.rb | 2 +- 28 files changed, 56 insertions(+), 64 deletions(-) diff --git a/ext/json/lib/json.rb b/ext/json/lib/json.rb index 807488ffef..8b1673d53f 100644 --- a/ext/json/lib/json.rb +++ b/ext/json/lib/json.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true require 'json/common' ## diff --git a/ext/json/lib/json/add/bigdecimal.rb b/ext/json/lib/json/add/bigdecimal.rb index b1d0cfa043..ea28f223da 100644 --- a/ext/json/lib/json/add/bigdecimal.rb +++ b/ext/json/lib/json/add/bigdecimal.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/complex.rb b/ext/json/lib/json/add/complex.rb index ef48c554c6..9e3c6f2d0a 100644 --- a/ext/json/lib/json/add/complex.rb +++ b/ext/json/lib/json/add/complex.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/core.rb b/ext/json/lib/json/add/core.rb index bfb017c460..485f097fff 100644 --- a/ext/json/lib/json/add/core.rb +++ b/ext/json/lib/json/add/core.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true # This file requires the implementations of ruby core's custom objects for # serialisation/deserialisation. diff --git a/ext/json/lib/json/add/date.rb b/ext/json/lib/json/add/date.rb index 19688f751b..88a098b637 100644 --- a/ext/json/lib/json/add/date.rb +++ b/ext/json/lib/json/add/date.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/date_time.rb b/ext/json/lib/json/add/date_time.rb index d7d42591cf..8b0bb5d181 100644 --- a/ext/json/lib/json/add/date_time.rb +++ b/ext/json/lib/json/add/date_time.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/exception.rb b/ext/json/lib/json/add/exception.rb index 71d8deb0ea..e85d404982 100644 --- a/ext/json/lib/json/add/exception.rb +++ b/ext/json/lib/json/add/exception.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/ostruct.rb b/ext/json/lib/json/add/ostruct.rb index 1e6f408248..7750498144 100644 --- a/ext/json/lib/json/add/ostruct.rb +++ b/ext/json/lib/json/add/ostruct.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/range.rb b/ext/json/lib/json/add/range.rb index 53f54ac372..408d2c32f6 100644 --- a/ext/json/lib/json/add/range.rb +++ b/ext/json/lib/json/add/range.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/rational.rb b/ext/json/lib/json/add/rational.rb index 8c39a7db55..c95812ea8e 100644 --- a/ext/json/lib/json/add/rational.rb +++ b/ext/json/lib/json/add/rational.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/regexp.rb b/ext/json/lib/json/add/regexp.rb index b63f49608f..aebfb2db5c 100644 --- a/ext/json/lib/json/add/regexp.rb +++ b/ext/json/lib/json/add/regexp.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/struct.rb b/ext/json/lib/json/add/struct.rb index 86847762ac..6760c3d86c 100644 --- a/ext/json/lib/json/add/struct.rb +++ b/ext/json/lib/json/add/struct.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/symbol.rb b/ext/json/lib/json/add/symbol.rb index b5f3623158..1566ebc121 100644 --- a/ext/json/lib/json/add/symbol.rb +++ b/ext/json/lib/json/add/symbol.rb @@ -1,5 +1,4 @@ - -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/add/time.rb b/ext/json/lib/json/add/time.rb index 0ee9c9ed2c..b03d4ff251 100644 --- a/ext/json/lib/json/add/time.rb +++ b/ext/json/lib/json/add/time.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED require 'json' end diff --git a/ext/json/lib/json/common.rb b/ext/json/lib/json/common.rb index 272f5731bd..bb37820a75 100644 --- a/ext/json/lib/json/common.rb +++ b/ext/json/lib/json/common.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +#frozen_string_literal: true require 'json/version' module JSON @@ -117,23 +117,17 @@ module JSON attr_accessor :state end - DEFAULT_CREATE_ID = 'json_class'.freeze - private_constant :DEFAULT_CREATE_ID - - CREATE_ID_TLS_KEY = "JSON.create_id".freeze - private_constant :CREATE_ID_TLS_KEY - # Sets create identifier, which is used to decide if the _json_create_ # hook of a class should be called; initial value is +json_class+: # JSON.create_id # => 'json_class' def self.create_id=(new_value) - Thread.current[CREATE_ID_TLS_KEY] = new_value.dup.freeze + Thread.current[:"JSON.create_id"] = new_value.dup.freeze end # Returns the current create identifier. # See also JSON.create_id=. def self.create_id - Thread.current[CREATE_ID_TLS_KEY] || DEFAULT_CREATE_ID + Thread.current[:"JSON.create_id"] || 'json_class' end NaN = 0.0/0 @@ -415,7 +409,7 @@ module JSON self.load_default_options = { :max_nesting => false, :allow_nan => true, - :allow_blank => true, + :allow_blank => true, :create_additions => true, } diff --git a/ext/json/lib/json/generic_object.rb b/ext/json/lib/json/generic_object.rb index 56efda6495..ec5aa9dcb2 100644 --- a/ext/json/lib/json/generic_object.rb +++ b/ext/json/lib/json/generic_object.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true begin require 'ostruct' rescue LoadError diff --git a/ext/json/lib/json/version.rb b/ext/json/lib/json/version.rb index 836f47edf4..3fc9b8c0da 100644 --- a/ext/json/lib/json/version.rb +++ b/ext/json/lib/json/version.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true module JSON # JSON version VERSION = '2.7.2' diff --git a/ext/json/parser/extconf.rb b/ext/json/parser/extconf.rb index 92419b787c..bd06f27822 100644 --- a/ext/json/parser/extconf.rb +++ b/ext/json/parser/extconf.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require 'mkmf' have_func("rb_enc_raise", "ruby.h") diff --git a/test/json/json_addition_test.rb b/test/json/json_addition_test.rb index 3a7a58176a..8c3fbda56a 100644 --- a/test/json/json_addition_test.rb +++ b/test/json/json_addition_test.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper' require 'json/add/core' require 'json/add/complex' @@ -114,8 +114,7 @@ class JSONAdditionTest < Test::Unit::TestCase end def test_raw_strings - raw = '' - raw.respond_to?(:encode!) and raw.encode!(Encoding::ASCII_8BIT) + raw = ''.b raw_array = [] for i in 0..255 raw << i diff --git a/test/json/json_common_interface_test.rb b/test/json/json_common_interface_test.rb index 045e72e020..e552412bfd 100644 --- a/test/json/json_common_interface_test.rb +++ b/test/json/json_common_interface_test.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper' require 'stringio' require 'tempfile' diff --git a/test/json/json_encoding_test.rb b/test/json/json_encoding_test.rb index fba9ee2855..afffd8976a 100644 --- a/test/json/json_encoding_test.rb +++ b/test/json/json_encoding_test.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper' class JSONEncodingTest < Test::Unit::TestCase @@ -26,8 +26,8 @@ class JSONEncodingTest < Test::Unit::TestCase end def test_generate - assert_equal @generated, JSON.generate(@parsed, :ascii_only => true) - assert_equal @generated, JSON.generate(@utf_16_data, :ascii_only => true) + assert_equal @generated, JSON.generate(@parsed, ascii_only: true) + assert_equal @generated, JSON.generate(@utf_16_data, ascii_only: true) end def test_unicode @@ -39,35 +39,35 @@ class JSONEncodingTest < Test::Unit::TestCase assert_equal "\"#{0x7f.chr}\"", 0x7f.chr.to_json utf8 = [ "© ≠ €! \01" ] json = '["© ≠ €! \u0001"]' - assert_equal json, utf8.to_json(:ascii_only => false) + assert_equal json, utf8.to_json(ascii_only: false) assert_equal utf8, parse(json) json = '["\u00a9 \u2260 \u20ac! \u0001"]' - assert_equal json, utf8.to_json(:ascii_only => true) + assert_equal json, utf8.to_json(ascii_only: true) assert_equal utf8, parse(json) utf8 = ["\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212"] json = "[\"\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212\"]" assert_equal utf8, parse(json) - assert_equal json, utf8.to_json(:ascii_only => false) + assert_equal json, utf8.to_json(ascii_only: false) utf8 = ["\343\201\202\343\201\204\343\201\206\343\201\210\343\201\212"] assert_equal utf8, parse(json) json = "[\"\\u3042\\u3044\\u3046\\u3048\\u304a\"]" - assert_equal json, utf8.to_json(:ascii_only => true) + assert_equal json, utf8.to_json(ascii_only: true) assert_equal utf8, parse(json) utf8 = ['საქართველო'] json = '["საქართველო"]' - assert_equal json, utf8.to_json(:ascii_only => false) + assert_equal json, utf8.to_json(ascii_only: false) json = "[\"\\u10e1\\u10d0\\u10e5\\u10d0\\u10e0\\u10d7\\u10d5\\u10d4\\u10da\\u10dd\"]" - assert_equal json, utf8.to_json(:ascii_only => true) + assert_equal json, utf8.to_json(ascii_only: true) assert_equal utf8, parse(json) - assert_equal '["Ã"]', generate(["Ã"], :ascii_only => false) - assert_equal '["\\u00c3"]', generate(["Ã"], :ascii_only => true) + assert_equal '["Ã"]', generate(["Ã"], ascii_only: false) + assert_equal '["\\u00c3"]', generate(["Ã"], ascii_only: true) assert_equal ["€"], parse('["\u20ac"]') utf8 = ["\xf0\xa0\x80\x81"] json = "[\"\xf0\xa0\x80\x81\"]" - assert_equal json, generate(utf8, :ascii_only => false) + assert_equal json, generate(utf8, ascii_only: false) assert_equal utf8, parse(json) json = '["\ud840\udc01"]' - assert_equal json, generate(utf8, :ascii_only => true) + assert_equal json, generate(utf8, ascii_only: true) assert_equal utf8, parse(json) assert_raise(JSON::ParserError) { parse('"\u"') } assert_raise(JSON::ParserError) { parse('"\ud800"') } @@ -75,21 +75,21 @@ class JSONEncodingTest < Test::Unit::TestCase def test_chars (0..0x7f).each do |i| - json = '["\u%04x"]' % i + json = '"\u%04x"' % i i = i.chr - assert_equal i, parse(json).first[0] + assert_equal i, parse(json)[0] if i == ?\b - generated = generate(["" << i]) - assert '["\b"]' == generated || '["\10"]' == generated + generated = generate(i) + assert '"\b"' == generated || '"\10"' == generated elsif [?\n, ?\r, ?\t, ?\f].include?(i) - assert_equal '[' << ('' << i).dump << ']', generate(["" << i]) + assert_equal i.dump, generate(i) elsif i.chr < 0x20.chr - assert_equal json, generate(["" << i]) + assert_equal json, generate(i) end end assert_raise(JSON::GeneratorError) do - generate(["\x80"], :ascii_only => true) + generate(["\x80"], ascii_only: true) end - assert_equal "\302\200", parse('["\u0080"]').first + assert_equal "\302\200", parse('"\u0080"') end end diff --git a/test/json/json_ext_parser_test.rb b/test/json/json_ext_parser_test.rb index f49f88b596..ff6598f490 100644 --- a/test/json/json_ext_parser_test.rb +++ b/test/json/json_ext_parser_test.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper' class JSONExtParserTest < Test::Unit::TestCase diff --git a/test/json/json_fixtures_test.rb b/test/json/json_fixtures_test.rb index acc8749965..adcdffbb5e 100644 --- a/test/json/json_fixtures_test.rb +++ b/test/json/json_fixtures_test.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper' class JSONFixturesTest < Test::Unit::TestCase diff --git a/test/json/json_generator_test.rb b/test/json/json_generator_test.rb index 37b28ab7b5..667baa03a9 100755 --- a/test/json/json_generator_test.rb +++ b/test/json/json_generator_test.rb @@ -1,5 +1,5 @@ #!/usr/bin/env ruby -# frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper' @@ -304,12 +304,12 @@ EOT state.configure(:indent => '1') assert_equal '1', state.indent state = JSON.state.new - foo = 'foo' + foo = 'foo'.dup assert_raise(TypeError) do state.configure(foo) end def foo.to_h - { :indent => '2' } + { indent: '2' } end state.configure(foo) assert_equal '2', state.indent diff --git a/test/json/json_generic_object_test.rb b/test/json/json_generic_object_test.rb index d6d7e30816..c14f5713b0 100644 --- a/test/json/json_generic_object_test.rb +++ b/test/json/json_generic_object_test.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper' class JSONGenericObjectTest < Test::Unit::TestCase diff --git a/test/json/json_parser_test.rb b/test/json/json_parser_test.rb index e04b0c93a5..7197522def 100644 --- a/test/json/json_parser_test.rb +++ b/test/json/json_parser_test.rb @@ -1,5 +1,4 @@ -# encoding: utf-8 -# frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper' require 'stringio' require 'tempfile' @@ -36,7 +35,8 @@ class JSONParserTest < Test::Unit::TestCase pend if RUBY_ENGINE == 'truffleruby' bug10705 = '[ruby-core:67386] [Bug #10705]' - json = ".\"\xE2\x88\x9A\"".force_encoding(Encoding::UTF_8) + json = ".\"\xE2\x88\x9A\"" + assert_equal(Encoding::UTF_8, json.encoding) e = assert_raise(JSON::ParserError) { JSON::Ext::Parser.new(json).parse } diff --git a/test/json/json_string_matching_test.rb b/test/json/json_string_matching_test.rb index b9cf904aaa..21cd649025 100644 --- a/test/json/json_string_matching_test.rb +++ b/test/json/json_string_matching_test.rb @@ -1,4 +1,4 @@ -#frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper' require 'time' diff --git a/test/json/ractor_test.rb b/test/json/ractor_test.rb index 36196ed23d..e0116400f8 100644 --- a/test/json/ractor_test.rb +++ b/test/json/ractor_test.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true require_relative 'test_helper'