红宝石如何找到模块

时间:2014-11-09 13:23:30

标签: ruby metasploit

假设您有以下代码。

require 'msf/core'

Class xxx

  ...

end

我对此有一些疑问。

我知道如果require中没有文件,那么应该是module

  1. msf/core是否意味着在core.rb的某个路径下搜索msf文件夹中的$:
  2. msf/core似乎是一条路径。它的定义语法是什么?

1 个答案:

答案 0 :(得分:0)

  

我知道如果require中没有文件那么应该是一个模块。

据我所知,require与模块名称无关。它总是需要文件名。

  

那红宝石如何找到模块?

找不到。它加载文件及其内容。

  

msf / core似乎是一个路径。它的定义语法是什么?

是的,它是相对于$LOAD_PATH$:)所需文件的路径。文件扩展名可能会被省略。在这种情况下,这是msf/core.rb中的LOAD_PATH文件。

BTW此变量为Array,可以使用自定义路径进行修改:

$:.unshift('/usr/share/my_rb_files/')
  

模块和类之间有什么区别?

在这种情况下没有区别。


我认为RubyDoc有足够的信息来说明它是如何运作的。