Я разрабатываю два драгоценных камня Ruby, один - фреймворк, другой - приложение.
Класс моего основного приложения наследуется от класса фреймворка.
Класс, определенный в платформе, имеет несколько методов загрузки файлов, которые полагаются на _____FILE_____, поэтому подклассы могут загружать ресурсы относительно своего пути.
То, что я хочу, это чтобы подклассы могли использовать те методы, которые определены в родителе, без (в основном) касания их. Возможно ли это?
Проблема с _____FILE_____, она не меняется, если код вызывается из подкласса, поэтому методы загрузки ресурсов «застряли» в каталоге frameworks, вместо того, чтобы пытаться загрузить из директорий приложения.
Я знаю, что могу переопределить эти методы в подклассе, но я хотел воспользоваться тем, что они уже определены в родительском.
Я хочу, чтобы подклассы ссылались на свой собственный каталог (где находится файл подкласса), используя метод, определенный в родительском объекте, вот в чем проблема.
Или я должен установить каталог приложения вручную?
Я постараюсь прояснить это:
Можно ли написать такой метод:
# /home/usr/framework/parent.rb
class Parent
def show_my_path
puts File.dirname(__FILE__)
end
end
# /home/usr/app/app.rb
# require Parent
class App < Parent
end
App.new.show_my_path
# Can we have here /home/usr/app
# instead of /home/usr/framework ?
# What's the right way to do this?