Я пишу консольную утилиту для управления проблемами Github, и я столкнулся с ошибкой undefined method
.Создание всех классов в модуле доступно в модуле
Мое приложение структурирована следующим образом
gissues.rb # includes all files in subfolders
Gissues
github.rb #Gissues::Github general github stuff
commands.rb #Gissues::commands subclass of Thor (whatisthor.com), general command stuff
cli.rb #subclass of commands, lists command shortcuts and subcommands
commands
user.rb #Command::User subclass of Gissues::Commands holds logic for github user related commands like signin, signout, whoami
github
user.rb #Github::User subclass of Gissues::Github holds logic for communicating with github for authentication (checking credentials)
я определил методы для общения с Github в user.rb внутри папки GitHub. Я хочу использовать эти методы в user.rb, определенные в папке команд, но когда я это делаю, он кажется вне области видимости, и я получаю метод, не определяемый ошибкой.
user.rb (команды) выглядит следующим образом
module Gissues
class Command::User < Gissues::Command
desc "signin", "Starts loging sequence"
def signin
Gissues::Github::User::request_token
end
end
end
, и я получаю следующее сообщение об ошибке
/Users/someone/RubymineProjects/Gissues/lib/gissues/commands/user.rb:9:in `signin': undefined method `request_token' for Gissues::Github::User:Class (NoMethodError)
Что я делаю неправильно? Заранее спасибо
Edit: Это изображение может сделать структуру более ясной
Вы можете явно указать 'require_relative '../ github/user'' или вам нужно проверить, что' github/user' требуется * перед * 'command/user' в верхнем файле. – mudasobwa