将多个 ruby 个源文件组合成一个文件
Combine many ruby source files into a single file
我正在 ruby 中从事一个项目,我有许多源文件,每个源文件都在一个模块中声明了一些 类 和方法。我一直在四处寻找,可能只是遗漏了一些东西,但我似乎找不到将所有源文件合并到一个文件中的方法。我想要一个文件,因为这里的最终产品是一个命令行工具,用户不想安装 20 个文件来 运行 一个命令。
有什么方法可以获取多个 ruby 源文件并提前处理所有 require
语句来创建一个单独的文件,该文件本身可以 运行 作为独立程序?
一些可能有用(或有害?)的东西:
- 唯一包含不在函数内的代码的文件是主文件。因此,只有主文件会在文件解析后立即有代码运行。
- I
require
all needed files immediately at the start of each file (after the initial comment), 所以 require
语句都在文件的顶部,并且列出了所有依赖项在每个文件的开头
- 我对每个文件所需的所有文件调用
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
我正在寻找的是可以让我将所有 5 个文件合并到一个 build
文件中的东西,只需将其放在正确的位置即可安装。任何帮助都会很棒,谢谢!
The only file with code that is not within a function is the main file. Therefore, only the main file will have code that is run immediately after the file is parsed.
因此,您可以简单地从 shell 运行 执行以下操作(假设 OS X / *nix 系统):
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
您可以将其放入 shell 脚本中,以便在每次进行更改时 "build" 您的输出文件。
使用此方法,您将在整个输出 main.rb
文件中散布 require
语句,但由于它们是幂等的,因此不会产生任何负面影响。
我正在 ruby 中从事一个项目,我有许多源文件,每个源文件都在一个模块中声明了一些 类 和方法。我一直在四处寻找,可能只是遗漏了一些东西,但我似乎找不到将所有源文件合并到一个文件中的方法。我想要一个文件,因为这里的最终产品是一个命令行工具,用户不想安装 20 个文件来 运行 一个命令。
有什么方法可以获取多个 ruby 源文件并提前处理所有 require
语句来创建一个单独的文件,该文件本身可以 运行 作为独立程序?
一些可能有用(或有害?)的东西:
- 唯一包含不在函数内的代码的文件是主文件。因此,只有主文件会在文件解析后立即有代码运行。
- I
require
all needed files immediately at the start of each file (after the initial comment), 所以require
语句都在文件的顶部,并且列出了所有依赖项在每个文件的开头 - 我对每个文件所需的所有文件调用
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
我正在寻找的是可以让我将所有 5 个文件合并到一个 build
文件中的东西,只需将其放在正确的位置即可安装。任何帮助都会很棒,谢谢!
The only file with code that is not within a function is the main file. Therefore, only the main file will have code that is run immediately after the file is parsed.
因此,您可以简单地从 shell 运行 执行以下操作(假设 OS X / *nix 系统):
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
您可以将其放入 shell 脚本中,以便在每次进行更改时 "build" 您的输出文件。
使用此方法,您将在整个输出 main.rb
文件中散布 require
语句,但由于它们是幂等的,因此不会产生任何负面影响。