diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-05-06 01:33:04 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-05-06 01:33:04 +0000 |
commit | 97849e1178fb02957ac28a0de8a5a29017fdafdb (patch) | |
tree | 68628e5329f24238f3f74a591b0a7f8978b8c751 | |
parent | d7f2c723228b02be0a7320d7af15713b3cf62176 (diff) |
share `@@accept_charset`
* 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
-rw-r--r-- | lib/cgi/core.rb | 9 | ||||
-rw-r--r-- | lib/cgi/util.rb | 6 | ||||
-rw-r--r-- | test/cgi/test_cgi_util.rb | 4 |
3 files changed, 17 insertions, 2 deletions
diff --git a/lib/cgi/core.rb b/lib/cgi/core.rb index fd9c41aa31..5895cf8541 100644 --- a/lib/cgi/core.rb +++ b/lib/cgi/core.rb @@ -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 diff --git a/lib/cgi/util.rb b/lib/cgi/util.rb index d765fd73e6..18eaf44375 100644 --- a/lib/cgi/util.rb +++ b/lib/cgi/util.rb @@ -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. diff --git a/test/cgi/test_cgi_util.rb b/test/cgi/test_cgi_util.rb index 9c9067a488..02558892b2 100644 --- a/test/cgi/test_cgi_util.rb +++ b/test/cgi/test_cgi_util.rb @@ -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 |