< :the previous in number
^ :the list in numerical order
> :the next in number
P :the previous (in thread)
N :the next artilce (have the same parent)
|<:the top of this thread
>|:the next thread
^ :the parent (reply-to)
_:the child (an article replying to this)
>:the elder article having the same parent
<:the youger article having the same parent
---:split window and show thread lists
| :split window (vertically) and show thread lists
~ :close the thread frame
.:the index
..:the index of indices
Thanks so much for the help and guidance. Most of my data is parsed
from mechanize and broken into smaller chunks that will manipulated to
get the final format. From my understanding, I should be ok. I
definitely agree that the conciseness of fewer lines of code is easier
to read. Just wanted to make sure that I'm not compromising speed or
garbage collection for readability on these types of methods.
Brian Candler wrote:
> Cs Webgrl wrote:
>> better
>> s = "string+var
>> s.gsub('+','')
>> s.strip!
>> s.capitalize
>> s => 'String Var'
>
> (You need gsub! and capitalize! of course)
>
>> Are there resources that explain why one is better than the other that
>> also provides more best practices like this?
>
> Methods like capitalize! work on the existing string buffer in memory.
> The non-bang methods create a whole new string, which involves work
> copying it, and then later garbage-collecting the original.
>
> Most of the non-bang methods are implemented as a dup followed by
> calling the bang method on the copy. They're written in C, but are
> effectively like this:
>
> class String
> def capitalize
> dup.capitalize!
> end
>
> def capitalize!
> # scan the string and modify it in place
> end
> end
>
> Of course, in most apps the original chained code you wrote will be just
> fine, and it's easy to write and understand. If you will be processing
> files which are hundreds of megabytes long then it may be worthwhile
> rewriting to the second form.
>
> Other thoughts:
>
> * for large files, process them in chunks or lines rather than reading
> them all in at once
>
> * use block form when opening a file, to ensure it's closed as soon as
> you've finished with it
>
> File.open("/path/to/file","rb") do |f|
> f.each_line do |line|
> ...
> end
> end
--
Posted via http://www.ruby-forum.com/.