2011-12-01 18 views
6

guys!Jakie są najlepsze praktyki w zakresie ponownego wykorzystywania kodu między różnymi projektami Ruby?

Jestem programistą z obsługą języka Java i rozpoczynam niektóre projekty przy użyciu frameworka Ruby (Padrino/Sinatra).

W moich projektach java zwykle miałem kilka "wspólnych" projektów, których klasy były używane w kilku projektach. Na przykład miałem centralną usługę uwierzytelniania i wspólną bazę danych, która zapisywała profile użytkowników. Wszystkie moje projekty korzystające z tej usługi współużytkowały niektóre modele zmapowane do bazy danych profilu użytkownika.

A więc, mimo że framework, orm lib itp., Jaki jest najlepszy sposób na udostępnianie kodu w kilku projektach Ruby?

Odpowiedz

4

Poza tym, ruby's gems jest jednym z najlepszych sposobów na ponowne użycie części wspólnych kodu. Klejnoty mają nazwy, numery wersji i opisy, dzięki czemu można łatwo aktualizować wersje tych bibliotek, instalować i odinstalowywać, zarządzać lokalnymi instalacjami klejnotów za pomocą komendy gem dostępnej z wiersza poleceń. Klejnoty stały się standardem w Ruby 1.9, ale zanim będziesz musiał użyć linii require 'rubygems' w skryptach. Istnieje kilka narzędzi, które pomagają w ich tworzeniu, na przykład bundler. Bundler to nie tylko narzędzie do tworzenia klejnotów, ale także menadżer zależności aplikacji od niesamowitej aplikacji.

0

Umieść swój kod w pliku something.rb i require go na górze swojego innego skryptu (ów).

Można również użyć load zamiast , ale require ma ładną właściwość, że nie będzie zawierał pliku więcej niż jeden raz. Ponadto, przy użyciu load wymaga rozszerzenia .rb, natomiast require nie robi, to znaczy,

#some_script.rb 
puts('hello world') 

#another script 
require 'some_script' 
>> hello world 

load 'some_script' 
LoadError: no such file to load -- some_script 
    from (irb):2:in 'load' 
    from (irb):2 

Będziesz prawie zawsze używać require, ale load jest opcją, a także jeśli chcesz użyć go do ... jakiegokolwiek powodu.

+0

Myślę, że on oznacza, jaki jest najlepszy sposób na udostępnienie ** something.rb ** w wielu folderach projektu. Też muszę to zrobić. –