2

我有一个 ruby​​ 脚本 (.rb),它打开一个文件并在一些解析后生成一个 csv 文件。

我独立维护脚本,并可能在其他应用程序中使用。

现在我只是将代码复制并粘贴到我的控制器中......我知道这是不对的!

我应该如何将此 ruby​​ 脚本合并到我的应用程序中?

我把它变成宝石吗?

谢谢。

4

2 回答 2

1

使其成为宝石并安装它是一种选择。否则,将文件的目录注册为加载路径。那部分可能取决于操作系统。例如,对于 Ubuntu Linux,我在终端中执行以下操作:

export RUBYLIB=path_to_the_directory_where_the_file_is

然后,require该文件并使用它。当您希望您的库根据是直接从命令调用还是从另一个 ruby​​ 脚本调用而表现不同时,常见的方法是在您的库中编写:

if __FILE__ == $0
  commands_to_execute_when_called_directly_from_command
end
于 2013-01-05T20:20:10.560 回答
1

我们一直在编写基于 Ruby 的小型命令行工具,并将它们视为常规的 Linux 应用程序。使用反引号或 调用它们是微不足道的,或者像我们使用常规应用程序一样%x使用常规管道 ( ) 链接它们。|

如果我们要抛出大量数据,通常我们会--json使用 OptionParser 添加一个标志,它允许我们将 JSON 发送到调用程序,从而更容易重用数据,而不必解析 CSV 或柱状数据.

您可以在/usr/local/bin*nix 系统上安装这类应用程序,确保路径设置为在那里搜索,然后在 shell、Ruby 或任何其他能够使用子 shell 的语言之间共享代码。

仅仅因为它们是用 Ruby 编写的,并不意味着它们必须是 gem 或模块。Ruby 的功能远不止这些,并且非常适合通常的宿主生态。

于 2013-01-05T22:25:51.657 回答