Are you sure you can’t rework your code to not copy data 5x? I assume
you’re doing conversion between formats, so the output will be something
completely else anyway. No need to work in-place then (which I assume is
the reason you’re dup-ing).
On Feb 23, 2011, at 14:00 , niklas | brueckenschlaeger wrote:
Are you sure you can’t rework your code to not copy data 5x? I assume
you’re doing conversion between formats, so the output will be something
completely else anyway. No need to work in-place then (which I assume is
the reason you’re dup-ing).
On Thu, 2011-02-24 at 06:58 +0900, Brian C. wrote:
Stefan S. wrote in post #983432:
But I think the original 5 lines is clearer
Thanks. I agree, but I am still learning Ruby, so I like to see what is
possible. And I like to save some lines of code. On the other hand,
plain code is easier to understand and can easier converted to other
languages, I know.
On Thu, 2011-02-24 at 07:00 +0900, niklas | brueckenschlaeger wrote:
Are you sure you can’t rework your code to not copy data 5x?
The code is related to handling configuration files, I have a basic
configuration set, a hash called @output. And variants for on screen,
pdf, png export. I can avoid duplicates, of course, if I look at the
basic hash and at the special variants each time. But that is a little
bit more complicated and consumes more time, which is not really good.
All that is related to a graphical editor – I have to clean up the code
a bit, it will become available on my page some time, then we can
discuss improvements. A tiny part related to cairo drawing is already
there:
The code is related to handling configuration files, I have a basic
configuration set, a hash called @output. And variants for on screen,
pdf, png export.
In that case, I’d say you’d be better off avoiding all the separate
instance variables for each variant, and make it data-driven. Then you
can interate over the variants, which will naturally avoid the repeated
code.
Now you have @configs[:scr], @configs[:png] etc, all pointing to
separate copies of @output. And if you want to add another format in
future, it’s a trivial change.
(Aside: please do not post variants of this code using ‘inject’, because
it’s stupid here. You know who you are. Thank you.)