我有一个ruby脚本(.rb),可以在解析之后打开一个文件并生成一个csv文件。
我独立维护脚本,可以在其他应用程序中使用。
现在我只是将代码复制并粘贴到我的控制器中......我知道这不对!
我应该如何将这个ruby脚本合并到我的应用程序中?
我能把它变成宝石吗?
感谢。
答案 0 :(得分: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
答案 1 :(得分:1)
我们一直在编写基于Ruby的小型命令行工具,并将它们视为常规Linux应用程序。使用后退标记或%x
来调用它们,或者使用常规管道(|
)将它们链接起来就像普通应用程序一样简单。
如果我们要抛出大量数据,通常我们会使用OptionParser添加--json
标志,这样我们就可以向调用程序发出JSON,从而更容易重用数据必须解析CSV或列数据。
您可以在{nix系统上的/usr/local/bin
中安装这些类型的应用程序,确保将路径设置为在那里搜索,然后在shell,Ruby或任何其他能够使用sub的语言之间共享代码-shell。
仅仅因为它们是用Ruby编写的并不意味着它们必须是宝石或模块。 Ruby能够提供更多功能,并且能够很好地适应常见的宿主生态。