* lib/cgi/{core,util}.rb: include CGI::Util not only extending, to
  share `@@accept_charset` class variable, so that it is always
  accessible.  [ruby-core:80986] [Bug #13539]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2017-05-06 01:33:04 +00:00
Родитель d7f2c72322
Коммит 97849e1178
3 изменённых файлов: 17 добавлений и 2 удалений

Просмотреть файл

@ -4,6 +4,13 @@
# generating HTTP responses.
#++
class CGI
unless const_defined?(:Util)
module Util
@@accept_charset = "UTF-8" # :nodoc:
end
include Util
extend Util
end
$CGI_ENV = ENV # for FCGI support
@ -734,7 +741,7 @@ class CGI
#
# CGI.accept_charset = "EUC-JP"
#
@@accept_charset="UTF-8"
@@accept_charset="UTF-8" if false # needed for rdoc?
# Return the accept character set for all new CGI instances.
def self.accept_charset

Просмотреть файл

@ -1,5 +1,9 @@
# frozen_string_literal: true
class CGI; module Util; end; extend Util; end
class CGI
module Util; end
include Util
extend Util
end
module CGI::Util
@@accept_charset="UTF-8" unless defined?(@@accept_charset)
# URL-encode a string.

Просмотреть файл

@ -60,6 +60,10 @@ class CGIUtilTest < Test::Unit::TestCase
return unless defined?(::Encoding)
assert_raise(TypeError) {CGI.unescape('', nil)}
assert_separately(%w[-rcgi/util], "#{<<-"begin;"}\n#{<<-"end;"}")
begin;
assert_equal("", CGI.unescape(''))
end;
end
def test_cgi_pretty