The behavior of String#squeeze and String#squeeze! changes from 1.8 to 1.9. You can see the difference in the two code samples below.
irb(main):009:0> `ruby -v`
=> "ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin11.1.0]\n"
irb(main):010:0> s = '--subbookkeeper--'
=> "--subbookkeeper--"
irb(main):011:0> s.squeeze 'z-a'
=> "--subbookkeeper--"
irb(main):012:0> s.squeeze! 'z-a'