From: shevegen@... Date: 2014-11-16T12:20:43+00:00 Subject: [ruby-core:66321] [ruby-trunk - Bug #10518] String "delete" method does not remove some characters from input string Issue #10518 has been updated by Robert A. Heiler. I looked at the String#count documentation: http://www.ruby-doc.org/core-2.1.4/String.html#method-i-count Allow me to copy paste from it: "Each other_str parameter defines a set of characters to count. The intersection of these sets defines the characters to count in str. Any other_str that starts with a caret ^ is negated. The sequence c1-c2 means all characters between c1 and c2. The backslash character can be used to escape ^ or - and is otherwise ignored unless it appears at the end of a sequence or the end of a other_str." Firstly, why are the strange code tags there? Secondly - this is not made very clear to me IMHO that the - character is treated in a special way. Perhaps the documentation can be made more clear in this regard. ---------------------------------------- Bug #10518: String "delete" method does not remove some characters from input string https://bugs.ruby-lang.org/issues/10518#change-49980 * Author: Sergio Gallelli * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 2.1.4p265 (2014-10-27 revision 48166) [i386-mingw32] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- This bug affects all Ruby versions I tried, i.e. 2.0.0 and 2.1.4 on Windows and 2.1.5 on Linux In some cases the String "delete" method does not remove all the characters from the input string I ask for removal. The problem seems to depend on the string passed as argument to the delete method and on the order of its characters. Please take a look at the simple "irb" dump below: irb(main):001:0> str = 'A-B' => "A-B" irb(main):002:0> str.delete ' -#' => "A-B" irb(main):003:0> str.delete ' #-' => "AB" If I try to remove the dash from string 'A-B' passing ' -#' to the delete method, it does not work. If I change the order of the characters passed to the delete method, the result is correct. The attached Ruby program shows the above problem. ---Files-------------------------------- str_delete_bug.rb (59 Bytes) -- https://bugs.ruby-lang.org/