# Come rifattorizzare... se possibile

**URL:** <https://www.ruby-forum.com/t/come-rifattorizzare-se-possibile/138500>\
**Category:** IT\
**Created:** [May 23, 2008, 7:02pm UTC](https://www.ruby-forum.com/t/come-rifattorizzare-se-possibile/138500 "2008-05-23T19:02:39Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![reis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f1d935/32.png) [@reis](https://www.ruby-forum.com/u/reis)\
**Post date:** [May 23, 2008, 7:02pm UTC](https://www.ruby-forum.com/t/come-rifattorizzare-se-possibile/138500/1 "2008-05-23T19:02:39Z")

</div>

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](http://mikamai.com)  
Writing [http://sensejs.wordpress.com/](http://sensejs.wordpress.com/)  
Collaborating [http://therubymine.it](http://therubymine.it)  
Reading [http://stacktrace.it](http://stacktrace.it)

---

<div class="post-metadata">

**Author:** ![reis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f1d935/32.png) [@reis](https://www.ruby-forum.com/u/reis)\
**Post date:** [May 23, 2008, 7:08pm UTC](https://www.ruby-forum.com/t/come-rifattorizzare-se-possibile/138500/2 "2008-05-23T19:08:07Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![reis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f1d935/32.png) [@reis](https://www.ruby-forum.com/u/reis)\
**Post date:** [May 23, 2008, 7:18pm UTC](https://www.ruby-forum.com/t/come-rifattorizzare-se-possibile/138500/3 "2008-05-23T19:18:35Z")

</div>

On Fri, May 23, 2008 at 7:08 PM, Claudio Petasecca D. \<  
removed\_email\_address@domain.invalid\> wrote:

> 

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

---

<div class="post-metadata">

**Author:** ![reis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f1d935/32.png) [@reis](https://www.ruby-forum.com/u/reis)\
**Post date:** [May 23, 2008, 7:55pm UTC](https://www.ruby-forum.com/t/come-rifattorizzare-se-possibile/138500/4 "2008-05-23T19:55:47Z")

</div>

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](http://www.lucaguidi.com)  
Pro-Netics: [www.pro-netics.com](http://www.pro-netics.com)  
Sourcesense - making sense of Open Source: [www.sourcesense.com](http://www.sourcesense.com)

---

<div class="post-metadata">

**Author:** ![reis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f1d935/32.png) [@reis](https://www.ruby-forum.com/u/reis)\
**Post date:** [May 23, 2008, 8:33pm UTC](https://www.ruby-forum.com/t/come-rifattorizzare-se-possibile/138500/5 "2008-05-23T20:33:31Z")

</div>

On Fri, May 23, 2008 at 7:55 PM, Luca G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
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](http://mikamai.com)  
Writing [http://sensejs.wordpress.com/](http://sensejs.wordpress.com/)  
Collaborating [http://therubymine.it](http://therubymine.it)  
Reading [http://stacktrace.it](http://stacktrace.it)
