2014-11-09 2 views
0

Скажите, что у вас есть код ниже.Как выглядит модуль поиска ruby ​​

require 'msf/core' 

Class xxx 

    ... 

end 

У меня есть некоторые вопросы по этому вопросу.

Я знаю, если нет файла в require, тогда должен быть номер module.

  1. ли msf/core средства поиска в папке msf в core.rb под определенным по пути $:?
  2. msf/core кажется пустым. Любой синтаксис определения для него?
+0

У Ruby есть определенные предопределенные пути, где хранятся файлы кода. Когда вам что-то понадобится, рубин будет проходить через эти места, ища файл, который вы попросили загрузить. В этом случае он будет искать папку «msf», которая содержит файл «core». Синтаксис используется для всего остального: папка/папка /.../ файл – SlySherZ

+0

Вы читали [руководство] (http://ruby-doc.org/core-2.1.2/Kernel.html#method- Я требую)? –

+0

@YuHao Да. Но все равно оставайтесь в замешательстве. Что это значит 'msf/core' в metasploit? –

ответ

0

Я знаю, что если в запросе нет файла, то должен быть модуль.

Как я знаю, require не имеет ничего общего с именами модулей. Он всегда принимает имена файлов.

Итак, как рубин найти модуль?

Он не находит. Он загружает файл и его содержимое.

msf/core похоже на путь. Любой синтаксис определения для него?

Да, это путь к требуемому файлу относительно $LOAD_PATH ($:). Расширение файла может быть опущено. В этом случае это msf/core.rb файл в вашем LOAD_PATH.

BTW эта переменная Array, который может быть изменен с помощью пользовательских путей:

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

В чем разница между модулем и классом?

В этом случае нет никакой разницы.


Я думаю, RubyDoc достаточно информации о том, как это работает.

+0

Я искал 'core.rb' в моем корневом пути. Почему не найден каталог с именем 'msf', который содержит файл' core.rb'? –

+0

Обратите внимание, что реализациям Ruby разрешено также искать другие расширения файлов, например Rubinius будет искать '.rba' (скомпилированный архив Rubinius, аналогичный Java' .jar') в дополнение к '.rb', JRuby будет поиск '.jar' и' .class', YARV будет искать '.so' (расширения C) и т. д. –

+0

Я также ищу ключ' core', не нашел папку 'msf'. Благодарю. –

Смежные вопросы