将多个ruby源文件合并到一个文件中

将多个ruby源文件合并到一个文件中,ruby,build,building,Ruby,Build,Building,我正在用ruby做一个项目,我有很多源文件,每个源文件在一个模块中声明了几个类和方法。我一直在四处寻找,可能只是遗漏了一些东西,但我似乎找不到一种方法将所有源文件合并到一个文件中。我想要一个文件,因为这里的最终产品是一个命令行工具,用户不希望为了运行一个命令而安装20个文件 有没有办法获取许多ruby源文件并提前处理所有的require语句,以创建一个可以作为独立程序运行的文件 一些可能有用(或有害?)的事情: 包含不在函数中的代码的唯一文件是主文件。因此,只有主文件才会有在解析文件后立即运行

我正在用ruby做一个项目,我有很多源文件,每个源文件在一个模块中声明了几个类和方法。我一直在四处寻找,可能只是遗漏了一些东西,但我似乎找不到一种方法将所有源文件合并到一个文件中。我想要一个文件,因为这里的最终产品是一个命令行工具,用户不希望为了运行一个命令而安装20个文件

有没有办法获取许多ruby源文件并提前处理所有的
require
语句,以创建一个可以作为独立程序运行的文件

一些可能有用(或有害?)的事情:

  • 包含不在函数中的代码的唯一文件是主文件。因此,只有主文件才会有在解析文件后立即运行的代码
  • I
    require
    在每个文件的开头(在初始注释之后)立即列出所有需要的文件,因此
    require
    语句都位于文件的顶部,所有依赖项都列在每个文件的开头
  • 我对每个文件所需的所有文件调用
    require
    ,无论天气如何,这些文件可能已经包含在内
示例(我的项目中的一些文件):

-->
...
build.rb[主文件]-->BuildSystem.rb
Utilities.rb
BuildSystem.rb-->Project.rb
YamlFile.rb
XmlFile.rb
Utilities.rb
Project.rb-->YamlFile.rb
XmlFile.rb
Utilities.rb
我要寻找的是一种能让我将所有5个文件合并成一个
构建
文件的东西,只需将其放在正确的位置即可安装。任何帮助都会很好,谢谢

包含不在函数中的代码的唯一文件是主文件。因此,只有主文件才会有在解析文件后立即运行的代码

因此,您可以从shell(假设使用OS X/*nix系统)简单地运行以下操作:

您可以将其放入shell脚本中,以便在每次进行更改时“构建”输出文件

使用此方法,您将在整个输出
main.rb
文件中散布
require
语句,但由于它们是幂等的,因此不会产生任何负面影响

<filename> --> <include1>
               <include2> 
               ...

build.rb [the main file] --> BuildSystem.rb
                             Utilities.rb
BuildSystem.rb           --> Project.rb
                             YamlFile.rb
                             XmlFile.rb
                             Utilities.rb
Project.rb               --> YamlFile.rb
                             XmlFile.rb
                             Utilities.rb
touch main.rb
cat Utilities.rb >> main.rb
cat XmlFile.rb >> main.rb
cat YamlFile.rb >> main.rb
cat Project.rb >> main.rb
cat BuildSystem.rb >> main.rb
cat build.rb >> main.rb #  must be appended last