String#clear


#1

Today I was using an Array and a String to track some info in my unit
tests. I needed to clear them in the #teardown routine. My first
thought was:

[@some_arr, @some_str].each { |var| var.clear }

I was surprised when that exploded and I had to change it to:

@some_arr.clear
@some_str.replace("")

Is there any good reason String can’t have a #clear method?

James Edward G. II


#2

James Edward G. II wrote:

Is there any good reason String can’t have a #clear method?

James Edward G. II

$ irb19
irb(main):001:0> “foo”.clear
=> “”
irb(main):002:0> RUBY_VERSION
=> “1.9.0”


#3

On Apr 18, 2006, at 4:06 PM, Joel VanderWerf wrote:

@some_str.replace("")

Is there any good reason String can’t have a #clear method?

James Edward G. II

$ irb19
irb(main):001:0> “foo”.clear
=> “”
irb(main):002:0> RUBY_VERSION
=> “1.9.0”

Sweet: now I’ll move to the obvious follow-up question… Why are
we not adding this to Ruby 1.8.x?

James Edward G. II


#4

class String
def clear
replace “”
end
end


#5

James G. wrote:

On Apr 18, 2006, at 4:06 PM, Joel VanderWerf wrote:

@some_str.replace("")

Is there any good reason String can’t have a #clear method?

James Edward G. II

$ irb19
irb(main):001:0> “foo”.clear
=> “”
irb(main):002:0> RUBY_VERSION
=> “1.9.0”

Sweet: now I’ll move to the obvious follow-up question… Why are
we not adding this to Ruby 1.8.x?

For future compatibility:

class String
instance_method(:clear) rescue def clear
replace “”
end
end

James Edward G. II
–Greg


#6

On Apr 18, 2006, at 5:34 PM, Gregory S. wrote:

For future compatibility:

class String
instance_method(:clear) rescue def clear
replace “”
end
end

Now that’s an idiom!


#7

James Edward G. II wrote:

Is there any good reason String can’t have a #clear method?

Better #empty!. IMHO.