【发布时间】:2015-12-05 20:41:58
【问题描述】:
从 PHP 背景开始使用 Ruby,我习惯于使用 require、require_once、include 或 include_once,它们都有类似的效果,但关键是它们继续使用处理代码在调用include / require 命令的同一范围内。
示例:
sub.php
<?php
echo $foo;
main.php
<?php
$foo = 1234;
include('sub.php'); // outputs '1234'
当我第一次开始使用 Ruby 时,我尝试包含 / require / require_relative / 加载其他 .rb 文件,在对它没有按预期工作感到有点沮丧之后,我决定有更好的方法来去分解大文件,而 Ruby 不需要像 PHP 那样表现。
但是,有时我觉得出于测试目的,最好以 PHP 的方式从另一个 .rb 文件加载代码 - 在同一范围内访问所有相同的变量 - 而不必使用 class /实例变量或常量。这可能吗?也许以某种方式使用 proc / binding / 或 eval 命令?
同样,我不主张在开发过程中使用它——但我很好奇它是否可能——如果可以,怎么做?
【问题讨论】:
-
是否要导入外部 ruby 库?
-
不是特别的,只是希望能够指向一个文件并在当前范围内运行它的几行代码
-
@JuanjoSalvador:
load没有这样做 - 它只提供了一个选项来防止 included 文件污染 includes的命名空间> 文件。
标签: ruby include eval require proc