Forum: Ruby String#clear

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
James G. (Guest)
on 2006-04-19 01:04
(Received via mailing list)
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
Joel VanderWerf (Guest)
on 2006-04-19 01:07
(Received via mailing list)
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"
James G. (Guest)
on 2006-04-19 01:19
(Received via mailing list)
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
Jake McArthur (Guest)
on 2006-04-19 01:19
(Received via mailing list)
class String
   def clear
     replace ""
   end
end
Gregory S. (Guest)
on 2006-04-19 01:34
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
Logan C. (Guest)
on 2006-04-19 01:44
(Received via mailing list)
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!
Carlos (Guest)
on 2006-04-19 11:42
(Received via mailing list)
James Edward G. II wrote:
> Is there any good reason String can't have a #clear method?

Better #empty!. IMHO.
This topic is locked and can not be replied to.