Come rifattorizzare... se possibile

La mia è una domanda un tantino banale e se non avete tempo non perdeteci
tempo, ma mi chiedevo se ci fosse un modo per dare a questo pezzo di
codice
un pochino di stile in più. Mi capita spesso adesso che ci sto prendendo
mano di creare dei metodi in cui inizializzare una variabile e poi
dirgli di
farla tornare al metodo chiamante. Mi chiedevo quindi se fosse possibile
evitare queste du parti con qualche trucco rubesco.

# concatena delle stringhe e ritorna il risultato
def get_all_properties_in_ml
    results = ''
    @properties.each do |property|
        ['old', 'new'].each do |life_time|
            results << "#{life_time.upcase} ..."
        end
    end
    return results
end

Secondo voi si più farci qualcosina?
Grazie mille a tutti!

Andrea R., http://mikamai.com
Writing http://sensejs.wordpress.com/
Collaborating http://therubymine.it
Reading http://stacktrace.it

io farei cosi:

concatena delle stringhe e ritorna il risultato

def get_all_properties_in_ml
@properties.collect do |property|
[‘old’, ‘new’].collect do |life_time|
“#{life_time.upcase} …”
end
end.flatten
end

On Fri, May 23, 2008 at 7:08 PM, Claudio Petasecca D. <
[email protected]alid> wrote:

Esattamente quello che cercavo Claudio!
Sei stato genitilissimo, grazie.

Non ho capito se deve ritornare un array o la stringa concatenata.

Nel primo caso:
@properties.inject([]) do |result, property|
result << %w(old new).map{|status| status.upcase << ‘…’}
end

Nel secondo caso:
@properties.inject("") do |result, property|
result << %w(old new).map{|status| status.upcase << ‘…’}.join
end


blog: www.lucaguidi.com
Pro-Netics: www.pro-netics.com
Sourcesense - making sense of Open Source: www.sourcesense.com

On Fri, May 23, 2008 at 7:55 PM, Luca G. [email protected]
wrote:

end

Un array è più flessibile a successive elaborazioni, e attualmente è quello
che faccio ritornare.
Anyway interessante anche questa possibilità, thanks!


Andrea R., http://mikamai.com
Writing http://sensejs.wordpress.com/
Collaborating http://therubymine.it
Reading http://stacktrace.it