mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
aa3dcabd87
Since Rails 6.0 will support Ruby 2.4.1 or higher `# frozen_string_literal: true` magic comment is enough to make string object frozen. This magic comment is enabled by `Style/FrozenStringLiteralComment` cop. * Exclude these files not to auto correct false positive `Regexp#freeze` - 'actionpack/lib/action_dispatch/journey/router/utils.rb' - 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb' It has been fixed by https://github.com/rubocop-hq/rubocop/pull/6333 Once the newer version of RuboCop released and available at Code Climate these exclude entries should be removed. * Replace `String#freeze` with `String#-@` manually if explicit frozen string objects are required - 'actionpack/test/controller/test_case_test.rb' - 'activemodel/test/cases/type/string_test.rb' - 'activesupport/lib/active_support/core_ext/string/strip.rb' - 'activesupport/test/core_ext/string_ext_test.rb' - 'railties/test/generators/actions_test.rb'
45 lines
1.2 KiB
Ruby
45 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "fileutils"
|
|
require "open-uri"
|
|
require "tmpdir"
|
|
|
|
module MultibyteTestHelpers
|
|
class Downloader
|
|
def self.download(from, to)
|
|
unless File.exist?(to)
|
|
unless File.exist?(File.dirname(to))
|
|
system "mkdir -p #{File.dirname(to)}"
|
|
end
|
|
open(from) do |source|
|
|
File.open(to, "w") do |target|
|
|
source.each_line do |l|
|
|
target.write l
|
|
end
|
|
end
|
|
end
|
|
end
|
|
true
|
|
end
|
|
end
|
|
|
|
UNIDATA_URL = "http://www.unicode.org/Public/#{ActiveSupport::Multibyte::Unicode::UNICODE_VERSION}/ucd"
|
|
CACHE_DIR = "#{Dir.tmpdir}/cache/unicode_conformance/#{ActiveSupport::Multibyte::Unicode::UNICODE_VERSION}"
|
|
FileUtils.mkdir_p(CACHE_DIR)
|
|
|
|
UNICODE_STRING = "こにちわ"
|
|
ASCII_STRING = "ohayo"
|
|
BYTE_STRING = (+"\270\236\010\210\245").force_encoding("ASCII-8BIT").freeze
|
|
|
|
def chars(str)
|
|
ActiveSupport::Multibyte::Chars.new(str)
|
|
end
|
|
|
|
def inspect_codepoints(str)
|
|
str.to_s.unpack("U*").map { |cp| cp.to_s(16) }.join(" ")
|
|
end
|
|
|
|
def assert_equal_codepoints(expected, actual, message = nil)
|
|
assert_equal(inspect_codepoints(expected), inspect_codepoints(actual), message)
|
|
end
|
|
end
|