不同Ruby项目之间代码重用的最佳实践是什么?

时间:2011-12-01 19:24:36

标签: ruby dry code-reuse modularity

人!

我是一名具有Java背景的软件开发人员,我正在使用Ruby Web框架(Padrino / Sinatra)开始一些项目。

在我的java项目中,我通常有一些“常见”项目,其中的类在几个项目中使用。例如,我有一个中央身份验证服务,以及一个存储用户配置文件的共享数据库。我使用此服务的所有项目都共享一些映射到用户配置文件数据库的模型。

所以,尽管有框架,orm lib等,在几个Ruby项目中共享代码的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

除此之外,ruby's gems是重用代码公共部分的最佳方式之一。 Gems具有名称,版本号和描述,因此您可以使用gem命令轻松维护这些库的最新版本,安装和卸载,管理计算机的本地宝石安装,可从命令行获得。 Gems成为Ruby 1.9的标准,但在脚本中必须使用require 'rubygems'行之前。有几种工具可以帮助创建它们,例如bundler。 Bundler不仅是创建gem的工具,而且是一个很棒的应用程序依赖项管理器。

答案 1 :(得分: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也是一种选择。