Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Извлечение исходных кодов метода


Автор: EqKeeper 25.12.2011, 23:47
Дамы и господа, помогите, пожалуйста.

Есть некий модуль, в нем некий метод, задача - узнать что происходит в недрах метода и переписать его. Поскольку Руби - язык не компилируемый, наверняка должны быть способы заглянуть в исходники этого зверя и поправить пару строчек. Всего то и нужно - убрать проверку на максимум\минимум передаваемых значений!

Заранее благодарю за любую помощь!

P.S. Естественно самого руби-файла нет (ломаю RPG Maker VX Ace), в котором все "ядерные" скрипты упакованы по dll'кам.

---
Добавлено:
Код
file, line = Graphics.method(:resize_screen).source_location

Выдаст в ответ:
Метод resize_screen определен в файле "", на линии:

---
Добавлено:
Нашел библиотеку: https://github.com/ngty/sourcify
С *.rb файлами работает на ура. Вот, например, запрос
Код
print MyMath.method(:sum).to_raw_source.to_s

А вот результат:
Код

def sum(x, y)
    x + y # (blah)
  end


Все здорово. Но если я пробую тем же способом извлечь код из файлов проекта (тех самых, упакованных), получаю ошибку:
Код

Script 'C:/Ruby193/lib/ruby/gems/1.9.1/gems/ngty-sourcify-101cd50/lib/sourcify/method/parser.rb' line 14: Sourcify::CannotFindSourceLocationError occurred.

Sourcify::CannotFindSourceLocationError


 smile 

Автор: EqKeeper 30.12.2011, 23:57
Отбой. Нашелся добрый человек, который сие безобразие уже распотрошил. smile 

Автор: source777 6.1.2012, 19:02
Для тех, кто любит копаться в недрах методов, могу посоветовать http://pry.github.com/.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)