Hi, I receive strings like:
content-language
accept-resource-priority
and I want to “capitalize” them in this way:
Content-Language
Accept-Resource-Priority
But String#capitalize method just capitalized first letter:
Content-language
Accept-resource-priority
Is there any “fast” method for what I want?
Yes, I could implement it extending String class or my own class <
String, but
performance is very important and I’d prefer using a method written in C
(as “String#capitalized”). Does is exist?
Thanks a lot.
On Sat, May 10, 2008 at 10:52 PM, Iñaki Baz C. [email protected] wrote:
But String#capitalize method just capitalized first letter:
Thanks a lot.
–
Iñaki Baz C.
Is this too slow?
str = “accept-resource-priority”
p str.split(/-/).map {|x| x.capitalize}.join(“-”)
Harry
El Sábado, 10 de Mayo de 2008, Harry K.
escribió:> >
p str.split(/-/).map {|x| x.capitalize}.join("-")
Hummm:
Benchmark.realtime { “accept”.capitalize }
=> 2.21729278564453e-05
Benchmark.realtime { “accept”.split(’-’).map {|w|
w.capitalize}.join(’-’) }
=> 3.69548797607422e-05
On Sat, 10 May 2008, Iñaki Baz C. wrote:
But String#capitalize method just capitalized first letter:
Content-language
Accept-resource-priority
Is there any “fast” method for what I want?
Yes, I could implement it extending String class or my own class < String, but
performance is very important and I’d prefer using a method written in C
(as “String#capitalized”). Does is exist?
I have to express healthy skepticism as to whether performance is so
critical that you can’t just do:
str.gsub!(/((^|-).)/) { $1.upcase }
and if it is, then I’ll express healthy skepticism as to whether or
not Ruby is the right language for the job
I don’t know of any C library that does the above, so if you need it,
you should probably go ahead and write it. You can base it off
rb_capitalize(_bang).
David
El Sábado, 10 de Mayo de 2008, David A. Black escribió:
I have to express healthy skepticism as to whether performance is so
critical that you can’t just do:
str.gsub!(/((^|-).)/) { $1.upcase }
Thanks, but it seems slower than using “split”/“join”:
Benchmark.realtime { “accept-asdasd-qweqwe”.split(’-’).map {|w|
w.capitalize}.join(’-’) }
=> 3.09944152832031e-05
Benchmark.realtime { “accept-asdasd-qweqwe”.gsub!(/((^|-).)/) {
$1.upcase } }
=> 3.60012054443359e-05
and if it is, then I’ll express healthy skepticism as to whether or
not Ruby is the right language for the job
Good response
I don’t know of any C library that does the above, so if you need it,
you should probably go ahead and write it. You can base it off
rb_capitalize(_bang).
ok, I’ll keep this as an alternative
Thanks a lot.