Issue #10518 has been updated by Sergio Gallelli.


Sorry, I did not realize the dash character stays for range and, as such, must be escaped.
This is probably convenient in some cases, however it might be "dangerous" in other circumstances.
Anyway, this is the way Ruby works, so I think this call can be closed.
Thanks.

----------------------------------------
Bug #10518: String "delete" method does not remove some characters from input string
https://bugs.ruby-lang.org/issues/10518#change-49983

* 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/