ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:47336] [ruby-trunk - Feature #8394][Open] use String#b instead of dup.force_encoding("ASCII-8BIT")
@ 2013-05-12  3:47 znz (Kazuhiro NISHIYAMA)
  2013-05-12 21:11 ` [ruby-dev:47339] [ruby-trunk - Feature #8394][Assigned] " xibbar (Takeyuki FUJIOKA)
  2013-05-16 10:01 ` [ruby-dev:47350] " xibbar (Takeyuki FUJIOKA)
  0 siblings, 2 replies; 3+ messages in thread
From: znz (Kazuhiro NISHIYAMA) @ 2013-05-12  3:47 UTC (permalink / raw
  To: ruby developers list


Issue #8394 has been reported by znz (Kazuhiro NISHIYAMA).

----------------------------------------
Feature #8394: use String#b instead of dup.force_encoding("ASCII-8BIT")
https://bugs.ruby-lang.org/issues/8394

Author: znz (Kazuhiro NISHIYAMA)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 


dup.force_encoding("ASCII-8BIT") を使っているところは b を使えば良いのではないかと思ったのですが、どうでしょうか?

diff --git a/lib/cgi/util.rb b/lib/cgi/util.rb
index 7de6fc7..bb5df37 100644
--- a/lib/cgi/util.rb
+++ b/lib/cgi/util.rb
@@ -6,7 +6,7 @@ module CGI::Util
   #      # => "%27Stop%21%27+said+Fred"
   def escape(string)
     encoding = string.encoding
-    string.dup.force_encoding('ASCII-8BIT').gsub(/([^ a-zA-Z0-9_.-]+)/) do
+    string.b.gsub(/([^ a-zA-Z0-9_.-]+)/) do
       '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase
     end.tr(' ', '+').force_encoding(encoding)
   end
diff --git a/lib/erb.rb b/lib/erb.rb
index 51b128e..9cb3999 100644
--- a/lib/erb.rb
+++ b/lib/erb.rb
@@ -596,7 +596,7 @@ class ERB
     def compile(s)
       enc = s.encoding
       raise ArgumentError, "#{enc} is not ASCII compatible" if enc.dummy?
-      s = s.dup.force_encoding("ASCII-8BIT") # don't use constant Enoding::ASCII_8BIT for miniruby
+      s = s.b
       enc = detect_magic_comment(s) || enc
       out = Buffer.new(self, enc)
 
@@ -948,7 +948,7 @@ class ERB
     #   Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide
     #
     def url_encode(s)
-      s.to_s.dup.force_encoding("ASCII-8BIT").gsub(/[^a-zA-Z0-9_\-.]/n) {
+      s.to_s.b.gsub(/[^a-zA-Z0-9_\-.]/n) {
         sprintf("%%%02X", $&.unpack("C")[0])
       }
     end



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [ruby-dev:47339] [ruby-trunk - Feature #8394][Assigned] use String#b instead of dup.force_encoding("ASCII-8BIT")
  2013-05-12  3:47 [ruby-dev:47336] [ruby-trunk - Feature #8394][Open] use String#b instead of dup.force_encoding("ASCII-8BIT") znz (Kazuhiro NISHIYAMA)
@ 2013-05-12 21:11 ` xibbar (Takeyuki FUJIOKA)
  2013-05-16 10:01 ` [ruby-dev:47350] " xibbar (Takeyuki FUJIOKA)
  1 sibling, 0 replies; 3+ messages in thread
From: xibbar (Takeyuki FUJIOKA) @ 2013-05-12 21:11 UTC (permalink / raw
  To: ruby developers list


Issue #8394 has been updated by xibbar (Takeyuki FUJIOKA).

Status changed from Open to Assigned
Assignee set to xibbar (Takeyuki FUJIOKA)

私はいいと思うので、確認してコミットしようと思います。
終わったら担当者を関さんに振ります。
----------------------------------------
Feature #8394: use String#b instead of dup.force_encoding("ASCII-8BIT")
https://bugs.ruby-lang.org/issues/8394#change-39281

Author: znz (Kazuhiro NISHIYAMA)
Status: Assigned
Priority: Normal
Assignee: xibbar (Takeyuki FUJIOKA)
Category: 
Target version: 


dup.force_encoding("ASCII-8BIT") を使っているところは b を使えば良いのではないかと思ったのですが、どうでしょうか?

diff --git a/lib/cgi/util.rb b/lib/cgi/util.rb
index 7de6fc7..bb5df37 100644
--- a/lib/cgi/util.rb
+++ b/lib/cgi/util.rb
@@ -6,7 +6,7 @@ module CGI::Util
   #      # => "%27Stop%21%27+said+Fred"
   def escape(string)
     encoding = string.encoding
-    string.dup.force_encoding('ASCII-8BIT').gsub(/([^ a-zA-Z0-9_.-]+)/) do
+    string.b.gsub(/([^ a-zA-Z0-9_.-]+)/) do
       '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase
     end.tr(' ', '+').force_encoding(encoding)
   end
diff --git a/lib/erb.rb b/lib/erb.rb
index 51b128e..9cb3999 100644
--- a/lib/erb.rb
+++ b/lib/erb.rb
@@ -596,7 +596,7 @@ class ERB
     def compile(s)
       enc = s.encoding
       raise ArgumentError, "#{enc} is not ASCII compatible" if enc.dummy?
-      s = s.dup.force_encoding("ASCII-8BIT") # don't use constant Enoding::ASCII_8BIT for miniruby
+      s = s.b
       enc = detect_magic_comment(s) || enc
       out = Buffer.new(self, enc)
 
@@ -948,7 +948,7 @@ class ERB
     #   Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide
     #
     def url_encode(s)
-      s.to_s.dup.force_encoding("ASCII-8BIT").gsub(/[^a-zA-Z0-9_\-.]/n) {
+      s.to_s.b.gsub(/[^a-zA-Z0-9_\-.]/n) {
         sprintf("%%%02X", $&.unpack("C")[0])
       }
     end



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [ruby-dev:47350] [ruby-trunk - Feature #8394][Assigned] use String#b instead of dup.force_encoding("ASCII-8BIT")
  2013-05-12  3:47 [ruby-dev:47336] [ruby-trunk - Feature #8394][Open] use String#b instead of dup.force_encoding("ASCII-8BIT") znz (Kazuhiro NISHIYAMA)
  2013-05-12 21:11 ` [ruby-dev:47339] [ruby-trunk - Feature #8394][Assigned] " xibbar (Takeyuki FUJIOKA)
@ 2013-05-16 10:01 ` xibbar (Takeyuki FUJIOKA)
  1 sibling, 0 replies; 3+ messages in thread
From: xibbar (Takeyuki FUJIOKA) @ 2013-05-16 10:01 UTC (permalink / raw
  To: ruby developers list


Issue #8394 has been updated by xibbar (Takeyuki FUJIOKA).

Status changed from Closed to Assigned
Assignee changed from xibbar (Takeyuki FUJIOKA) to seki (Masatoshi Seki)


----------------------------------------
Feature #8394: use String#b instead of dup.force_encoding("ASCII-8BIT")
https://bugs.ruby-lang.org/issues/8394#change-39362

Author: znz (Kazuhiro NISHIYAMA)
Status: Assigned
Priority: Normal
Assignee: seki (Masatoshi Seki)
Category: 
Target version: 


dup.force_encoding("ASCII-8BIT") を使っているところは b を使えば良いのではないかと思ったのですが、どうでしょうか?

diff --git a/lib/cgi/util.rb b/lib/cgi/util.rb
index 7de6fc7..bb5df37 100644
--- a/lib/cgi/util.rb
+++ b/lib/cgi/util.rb
@@ -6,7 +6,7 @@ module CGI::Util
   #      # => "%27Stop%21%27+said+Fred"
   def escape(string)
     encoding = string.encoding
-    string.dup.force_encoding('ASCII-8BIT').gsub(/([^ a-zA-Z0-9_.-]+)/) do
+    string.b.gsub(/([^ a-zA-Z0-9_.-]+)/) do
       '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase
     end.tr(' ', '+').force_encoding(encoding)
   end
diff --git a/lib/erb.rb b/lib/erb.rb
index 51b128e..9cb3999 100644
--- a/lib/erb.rb
+++ b/lib/erb.rb
@@ -596,7 +596,7 @@ class ERB
     def compile(s)
       enc = s.encoding
       raise ArgumentError, "#{enc} is not ASCII compatible" if enc.dummy?
-      s = s.dup.force_encoding("ASCII-8BIT") # don't use constant Enoding::ASCII_8BIT for miniruby
+      s = s.b
       enc = detect_magic_comment(s) || enc
       out = Buffer.new(self, enc)
 
@@ -948,7 +948,7 @@ class ERB
     #   Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide
     #
     def url_encode(s)
-      s.to_s.dup.force_encoding("ASCII-8BIT").gsub(/[^a-zA-Z0-9_\-.]/n) {
+      s.to_s.b.gsub(/[^a-zA-Z0-9_\-.]/n) {
         sprintf("%%%02X", $&.unpack("C")[0])
       }
     end



-- 
http://bugs.ruby-lang.org/

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-05-16 10:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-12  3:47 [ruby-dev:47336] [ruby-trunk - Feature #8394][Open] use String#b instead of dup.force_encoding("ASCII-8BIT") znz (Kazuhiro NISHIYAMA)
2013-05-12 21:11 ` [ruby-dev:47339] [ruby-trunk - Feature #8394][Assigned] " xibbar (Takeyuki FUJIOKA)
2013-05-16 10:01 ` [ruby-dev:47350] " xibbar (Takeyuki FUJIOKA)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).