繁体   English   中英

如何将独立维护的 ruby​​ 脚本合并到 Rails 应用程序中

[英]How do I incorporate an independently maintained ruby script into a rails application

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

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

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

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

我让它成为宝石吗?

谢谢。

使其成为 gem 并安装它是一种选择。 否则,将文件的目录注册为加载路径。 该部分可能取决于操作系统。 例如,对于 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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM