# Layout dei progetti ruby

**URL:** <https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198>\
**Category:** IT\
**Created:** [September 25, 2012, 5:48pm UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198 "2012-09-25T17:48:15Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![aris](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@aris](https://www.ruby-forum.com/u/aris)\
**Post date:** [September 25, 2012, 5:48pm UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198/1 "2012-09-25T17:48:15Z")

</div>

Buongiorno a tutti  
Esistono delle linee guida da seguire per impostare un progetto ruby  
(in particolare sinatra)?  
Quello che intendo ci sono convenzioni che invitano a mettere il  
codice in una certa cartella (ad esempio java usa la convenzione  
com.nomeazienda…)?

grazie.

---

<div class="post-metadata">

**Author:** ![Emanuele\_DelBono](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/e19adc/32.png) [@Emanuele\_DelBono](https://www.ruby-forum.com/u/Emanuele_DelBono)\
**Post date:** [September 25, 2012, 6:06pm UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198/2 "2012-09-25T18:06:23Z")

</div>

non so se esistono convenzioni precise, di norma cerco di seguire un po’  
di buon senso e guardo come sono organizzati gli altri progetti (es: la  
struttura di default per rails)

puoi seguire una struttura tipo questa:

- config/ # =\> tutti i config ed il codice per inizializzare l’app

- views/\* # =\> c’ poco da spiegare 😛

- lib/ # =\> per i componenti aggiuntivi

- app/ # =\> se proprio non sai dove mettere il codice relativo all’app  
(es: models e moduli con le azioni di sinatra

- spec/test # =\> il solito 😛

- Gemfile, [config.ru](http://config.ru), etc # =\> tutto quello che occorre per  
pacchettizzarla e/o farla partire con rack

sono comunque curioso di sapere altri pareri 😉

A.

Il giorno 25/set/2012, alle ore 17:47, Emanuele DelBono  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

---

<div class="post-metadata">

**Author:** ![Emanuele\_DelBono](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/e19adc/32.png) [@Emanuele\_DelBono](https://www.ruby-forum.com/u/Emanuele_DelBono)\
**Post date:** [September 25, 2012, 6:49pm UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198/3 "2012-09-25T18:49:03Z")

</div>

Ciao Ema,

no, niente come i progetti di VS in C# se quello che stai  
cercando.Per sinatra ho visto usare le stesse cartelle di rails (cio  
app/models, app/views), tutto in root (models/ , views/) ma c’ in giro  
davvero un po’ di tutto ([GitHub - sr/git-wiki: A quick & dirty git-powered Sinatra wiki](https://github.com/sr/git-wiki) per esempio ha  
tutto in un unico file).

HTHAndrea

–

> **[using (IMHO)](https://usingimho.wordpress.com/)**
>
> Andrea Dallera 's blog

> **[bolthar - Overview](https://github.com/bolthar)**
>
> bolthar has 18 repositories available. Follow their code on GitHub.

Da: removed\_email\_address@domain.invalid  
A: “ruby-it” removed\_email\_address@domain.invalid  
Cc:  
Data: Tue, 25 Sep 2012 17:47:56 +0200  
Oggetto: [ruby-it] Layout dei progetti ruby

---

<div class="post-metadata">

**Author:** ![Emanuele\_DelBono](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/e19adc/32.png) [@Emanuele\_DelBono](https://www.ruby-forum.com/u/Emanuele_DelBono)\
**Post date:** [September 25, 2012, 10:03pm UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198/4 "2012-09-25T22:03:38Z")

</div>

Ciao Andrea (che fine hai fatto?).

Grazie a tutti, diciamo che si usa il buon senso.🙂

In molti casi ho visto usare una cartella lib per il codice e una test  
per i test. Ma non mi torna perch lib…forse perch era una gemma?

2012/9/25 Andrea D. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

---

<div class="post-metadata">

**Author:** ![Emanuele\_DelBono](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/e19adc/32.png) [@Emanuele\_DelBono](https://www.ruby-forum.com/u/Emanuele_DelBono)\
**Post date:** [September 25, 2012, 10:39pm UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198/5 "2012-09-25T22:39:17Z")

</div>

Personalmente le convenzioni di Rails per me funzionano, non condivido  
invece i file con pi classi.  
Le rare volte che ci ho provato si sono rivelate pi lavoro dei file  
singoli!

Inviato da iPhone

Il giorno 25/set/2012, alle ore 22:03, Emanuele DelBono  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

---

<div class="post-metadata">

**Author:** ![Emanuele\_DelBono](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/e19adc/32.png) [@Emanuele\_DelBono](https://www.ruby-forum.com/u/Emanuele_DelBono)\
**Post date:** [September 25, 2012, 7:38pm UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198/6 "2012-09-25T19:38:42Z")

</div>

2012/9/25 Andrea P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> - app/ # =\> se proprio non sai dove mettere il codice relativo all’app (es:  
> models e moduli con le azioni di sinatra
> 
> - spec/test # =\> il solito 😛
> 
> - Gemfile, [config.ru](http://config.ru), etc… # =\> tutto quello che occorre per pacchettizzarla e/o  
> farla partire con rack
> 
> sono comunque curioso di sapere altri pareri 😉

personalmente:

views/  
tests/  
models.rb  
controllers.rb  
config.rb

finché un’app piccina i single file sono più comodi 🙂

–  
twitter: @riffraff  
blog (en, it): www.riffraff.info [riffraff.blogsome.com](http://riffraff.blogsome.com)  
work: [circleme.com](http://circleme.com)

---

<div class="post-metadata">

**Author:** ![Emanuele\_DelBono](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/e19adc/32.png) [@Emanuele\_DelBono](https://www.ruby-forum.com/u/Emanuele_DelBono)\
**Post date:** [September 26, 2012, 8:21am UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198/7 "2012-09-26T08:21:46Z")

</div>

2012/9/25 Luca P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > In molti casi ho visto usare una cartella lib per il codice e una test  
> > per i test. Ma non mi torna perch lib…forse perch era una gemma?

non solo gem esterne, che certa roba non necessariamente  
controller o model, e quindi la metti altrove.

Che ne so, magari hai un set di estensioni delle classi base (tipo  
String#title\_case?) o qualche classe che non strettamente parte del  
modello o del controller anche se la usi in uno dei due (es: un  
SortedSet probabilmente non una cosa specifica del tuo dominio come  
potrebbe essere User), o semplicemente una mini libreria che ti porti  
dietro che non specifica del progetto (tipo un  
SyntaxHighlightingMarkdownProcessor).

Anche se alla fine si pu dire che _sempre_ parte del “model”.  
Non penso che la polizia del buon codice ti verr dietro se metti  
qualcosa in model/ che potresti mettere in lib/ 🙂

–  
twitter: @riffraff  
blog (en, it): www.riffraff.info [riffraff.blogsome.com](http://riffraff.blogsome.com)  
work: [circleme.com](http://circleme.com)

---

<div class="post-metadata">

**Author:** ![Emanuele\_DelBono](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/e19adc/32.png) [@Emanuele\_DelBono](https://www.ruby-forum.com/u/Emanuele_DelBono)\
**Post date:** [September 26, 2012, 8:16pm UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198/8 "2012-09-26T20:16:22Z")

</div>

2012/9/26 Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> views per i partials condivisi.  
> In rails non esistono i package come per java, questo potrebbe essere  
> un pro o un contro, io uso anche grails e quando le classi diventano  
> tante e’ comodo organizzarle in packages.

dipendentemente da quel che apprezzi nei package di java, possono  
andare bene i moduli di ruby, o annidamento dentro una classe, rails  
li gestisce ragionevolmente bene (e.g. usare modelli User,  
User::Setting, User::Credentials )

–  
twitter: @riffraff  
blog (en, it): www.riffraff.info [riffraff.blogsome.com](http://riffraff.blogsome.com)  
work: [circleme.com](http://circleme.com)

---

<div class="post-metadata">

**Author:** ![Emanuele\_DelBono](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/e19adc/32.png) [@Emanuele\_DelBono](https://www.ruby-forum.com/u/Emanuele_DelBono)\
**Post date:** [September 26, 2012, 8:02pm UTC](https://www.ruby-forum.com/t/layout-dei-progetti-ruby/223198/9 "2012-09-26T20:02:21Z")

</div>

2012/9/25 Emanuele DelBono [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Buongiorno a tutti  
> Esistono delle linee guida da seguire per impostare un progetto ruby  
> (in particolare sinatra)?  
> Quello che intendo ci sono convenzioni che invitano a mettere il  
> codice in una certa cartella (ad esempio java usa la convenzione  
> com.nomeazienda…)?

Io ho sempre usato le convenzioni di default di rails, non ho mai  
cambiato nulla se non aggiungere una directory “application” sotto  
views per i partials condivisi.  
In rails non esistono i package come per java, questo potrebbe essere  
un pro o un contro, io uso anche grails e quando le classi diventano  
tante e’ comodo organizzarle in packages.
