2011-12-01 5 views
6

ребята!Каковы лучшие практики повторного использования кода между различными проектами Ruby?

Я разработчик программного обеспечения с фона Java, и я запускаю некоторые проекты, используя веб-инфраструктуру Ruby (Padrino/Sinatra).

В моих проектах java у меня обычно были некоторые «общие» проекты, классы которых использовались в нескольких проектах. Например, у меня была центральная служба аутентификации и общая база данных, которая хранила пользовательские профили. Все мои проекты, которые использовали эту службу, поделились некоторыми моделями, сопоставленными с базой данных профиля пользователя.

Итак, несмотря на рамки, orm lib и т. Д., Каков наилучший способ обмена кодами через несколько проектов Ruby?

ответ

4

Кроме того, ruby's gems является одним из лучших способов повторного использования общих частей кода. У самоцветов есть имена, номера версий и описания, поэтому вы можете легко поддерживать обновленные версии этих библиотек, устанавливать и удалять, управлять локальными установками компьютера с помощью команды gem, доступной из командной строки. Драгоценные камни стали стандартными с Ruby 1.9, но прежде чем вы должны использовать строку require 'rubygems' в сценариях. Существует несколько инструментов, которые помогают создавать их, например, bundler. Bundler не только инструмент для создания драгоценных камней, но и менеджер зависимых приложений.

0

Поместите свой код в файл something.rb и require в верхней части вашего другого скрипта (ов).

Вы также можете использовать load вместо require, но require имеет приятное свойство, что он не будет включать файл более одного раза. Кроме того, с помощью load требует расширения .rb, в то время как require не происходит, т.е.

#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 

Вы почти всегда использовать require, но load вариант, а если вы хотите использовать его для ... какой-либо причине.

+0

Я думаю, он имеет в виду, что это лучший способ поделиться ** something.rb ** через несколько папок проектов. Мне тоже нужно это сделать. –

Смежные вопросы