2009-08-28 15 views
6

Ora circa 2 settimane di apprendimento Ruby e Rails, ho trovato me stesso utilizzando la classe File molto per le cose come File.join, File.open, ecc Poi mi sono imbattuto in un bisogno di File.copy solo per scoprire che non esiste un tale metodo. Un po 'più alla ricerca di Rails' FileUtils classe e ora sono un po 'confuso.classe File vs Rails' fileutils Ruby

Ci sono differenze, ovviamente, ma ci sono anche quelli che sembrano essere ridondanze. Si preferisce l'uno rispetto all'altro dove ci sono delle differenze? Perché esistono entrambi (è solo per gestire le omissioni nella core class di Ruby)?

Mi piacerebbe solo avere un'idea di come queste cose funzionano insieme o in conflitto, quindi so come andare avanti.

Grazie.

risposta

7

FileUtils fa parte dell'API di Ruby Core. Non è specifico di Rails. Inoltre, è un modulo, in modo da poter mescolare alcune delle abilità che ha da offrire in un'altra classe. La soluzione migliore è leggere probabilmente lo File RDoc e lo FileUtils RDoc. Spero che questo ti aiuti un po '. Saluti.

Edit:

è uno preferito sopra l'altro in cui ci sono differenze?

Non so se c'è molto di consenso su cui da utilizzare quando i metodi hanno lo stesso ultimo risultato finale, come ad esempio File.makedirs vs FileUtils.mkdir_p, ma vedo spesso quest'ultimo in altro codice popoli. Penso che quasi sempre userete i due (File & FileUtils) in congiunzione.

+0

Grazie, l'IV. Poiché c'era almeno qualche sovrapposizione, ero curioso di sapere come altri si stavano avvicinando alla disponibilità di entrambi. Ora ho usato entrambi e ho familiarità con i documenti per entrambi, ma la sovrapposizione introduce un certo livello di ambiguità per i neofiti come me. :-) –

+0

Per essere onesti, non sono sicuro che i nomi dei metodi di 'FileUtils' vengano chiamati così come sono in modo che si sentano 'più a loro agio' per le persone che provengono da sfondi * nix. Speravo che qualcun altro avrebbe chiarito un po 'di più. : / – theIV