Не могу правильно включить модули ruby - PullRequest
2 голосов
/ 26 января 2012

Я вроде новичок в Ruby, поэтому я даже не уверен, что то, что я делаю, - лучшая практика.Прямо сейчас я пытаюсь определить функцию import , которая находится в модуле что-то в.для файла нечто.rb, в котором будет использоваться функция import require'thing.rb '

class MyClass
    include MyModule
    def initialize(file)
        @myFile = import(file)
    end
end

Проблема возникает только при попытке импортировать модуль из другого файла.Когда я использую модуль в том же файле, все работает в соответствии с тем, что вы ожидаете.Я получаю следующие ошибки:

usr/lib/ruby/1.8/rexml/dtd/elementdecl.rb:8: warning: already initialized constant PATTERN_RE
XMLTest.rb:9: uninitialized constant MyModule (NameError)

Что я делаю не так?

Ответы [ 3 ]

3 голосов
/ 26 января 2012

Вам нужно указать другой файл, который вы пытаетесь загрузить, в вашем первом файле, Ruby не сделает этого автоматически.Поэтому, если ваш модуль находится в файле с именем "thing.rb ":

require "something"

class MyClass
  include MyModule
  def initialize(file)
    @myFile = import(file)
  end
end
1 голос
/ 06 июня 2019

вы можете использовать require_relative для импорта файла, который использует ваш модуль include для добавления модуля в класс для доступа к модулю


   class MyClass
   include somethingModuleName
   end
0 голосов
/ 26 января 2012

попробуйте изменить ваш rexml require на require_once.

Итак:

require_once 'rexml/document'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...