Описание тега monkeypatching
Динамическое изменение поведения во время выполнения путем замены элементов программы новыми элементами программы
1
ответ
Как обезьяна пропатчить класс с помощью модуля?
У меня есть несколько файлов. В одном я хотел бы расширить некоторые классы Ruby, например module Stylable class Array def styled "\n" << "*"*72 << self.to_s << "*"*72 << "\n" end end end В другом файле я определяю класс и см…
30 янв '15 в 14:44
2
ответа
Как сделать monkeypatch встроенной функцией datetime.datetime.now?
Я хотел бы убедиться, что datetime.datetime.now() возвращает конкретную дату и время для тестирования. Как мне это сделать? Я пробовал с pytest's monkeypatch monkeypatch.setattr(datetime.datetime,"now", nowfunc) Но это дает мне ошибку TypeError: can…
19 апр '13 в 19:36
2
ответа
Как мне сделать метод URI.parse?
Некоторые популярные сайты блогов обычно используют квадратные скобки в своих URL-адресах, но встроенный в ruby метод URI.parse() блокирует их, вызывая неприятное исключение, согласно: http://redmine.ruby-lang.org/issues/show/1466 Я пытаюсь написа…
08 окт '10 в 13:46
0
ответов
Прокси-вызовы с использованием XMLHttpRequest в пользовательском скрипте / расширении
У меня возникли проблемы с патчированием XMLHttpRequest в моем пользовательском скрипте. Интересно, что если я открою консоль и скопирую содержимое скрипта, строка Intercepted будет напечатана в консоли. Это почему? Есть какая-то песочница? Если ест…
15 окт '17 в 07:50
1
ответ
Патч обезьяны ActiveRecord метод PostgreSQLAdapter
По этому вопросу я пытаюсь переопределить postgresql_version метод, определенный в ActiveRecord::ConnectionAdapters::PostgreSQLAdapter который возвращает версию PostgreSQL: module ActiveRecord module ConnectionAdapters class PostgreSQLAdapter < A…
23 фев '13 в 18:03
1
ответ
Как monkeypatch подключение к реестру с pytest
В настоящее время я пишу юнит-тесты для моего скрипта Python. Одна из моих функций имеет следующий код: from _winreg import * aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) aKey = OpenKey(aReg, LIBRARIES_REG_KEY) count, value, type = QueryInfoKey(…
07 май '16 в 21:59
4
ответа
Каков механизм, позволяющий исправлениям Python Monkey в этом случае?
Может кто-нибудь объяснить логику, как это работает с интерпретатором Python? Является ли это поведение только локальным потоком? Почему назначение при импорте первого модуля сохраняется после импорта второго модуля? У меня просто была долгая сессия…
28 янв '15 в 05:45
1
ответ
Как изменить (monkey-patching) стороннюю функцию в конкретной строке
Интересно, можно ли изменить стороннюю функцию (например, monkey-patching [ wiki], [ nice article]) таким образом, чтобы добавить несколько строк в середине этих функций? Пример того, что я хочу: Сторонний (исправление цели): var obj = { sum: functi…
26 май '16 в 06:08
2
ответа
Куда помещать код при исправлении обезьян
Все, что я читал об исправлении обезьян, говорит о том, чтобы сделать что-то вроде этого: class String def foo #your special code end end Но я не могу найти никаких инструкций о том, где разместить этот код. В приложении rails я могу просто поместит…
17 янв '17 в 19:29
1
ответ
Уточнения и пространства имен
Попытка исправить net/http и применить его только к одному классу обслуживания. Уточнения, кажется, путь. Патч обезьяны ниже работает, а уточнение - нет. Это проблема пространства имен? Проект на ruby 2.3.0, но пробовал и с 2.4.1, и, кажется, толь…
22 ноя '17 в 17:43
2
ответа
Обезьяна исправила логин Django Auth, теперь его тесты не пройдены
Мое приложение стремится обернуть представления входа и выхода из django.contrib.auth.views некоторыми базовыми возможностями аудита / ведения журнала. Я следую рецепту, как описано в проекте django-axes, и при запуске на сервере и некоторых других …
30 мар '11 в 00:35
1
ответ
Добавление методов в sudsobject. Исправление обезьяны или импорт в новый объект?
Я пишу некоторый код на Python, который использует suds для подключения к устройству, получения wsdl и запроса некоторой информации об устройстве. Эта часть кода работает, и похоже, что suds создает и размещает данные в этом объекте. Я хотел бы доба…
16 мар '12 в 20:12
1
ответ
Переменная $1 в блоке с псевдонимом
Как я могу создать метод с псевдонимом, который оборачивает метод, который приводит к блоку, который использует $1 переменные? Более конкретно, я хочу, чтобы monkeypatch String#sub (да, я знаю, что это не очень хорошая практика) изменять переданные …
16 фев '13 в 16:37
1
ответ
Обезьяна исправляет метод экземпляра Python, используя оригинальный метод из класса
Я хочу, чтобы обезьяна исправила метод библиотечного класса, чтобы определить другое значение по умолчанию для параметра. Это не удается: from functools import partial class A(object): def meth(self, foo=1): print(foo) A.meth = partial(A.meth, foo=2…
31 янв '19 в 12:23
1
ответ
Исправление обезьян на уровне пакета npm?
Я бы хотел расширить пакет npm "трюфель", но в настоящее время в версии 4 (и версии 5) "трюфель" не имеет механизма расширения плагинов. Таким образом, широкий вопрос - как это сделать. Одной из возможностей было бы перечислить трюфельный пакет как …
18 сен '18 в 19:20
4
ответа
Обезьяноподобный рубиновый метод с ударом
Возможно ли обезьяна-патч метод с ударом в конце? Я хочу обезьяну-патч String.upcase!, но я не знаю, как этого добиться. Проблема в том, что я хочу изменить исходный строковый объект. Вот пример: class String def upcase! self.mb_chars.upcase.to_s en…
14 окт '13 в 15:29
1
ответ
Какой monkeypatch создает частный метод split?
Вопросы Ruby: закрытый метод для 3:Fixnum и закрытый метод split для nil:NilClass (NoMethodError) упоминают приватные методы split за Fixnum а также NilClass объекты соответственно. Это личное split метод псевдо-ключевое слово (например, print а так…
18 апр '11 в 00:15
1
ответ
Динамически добавлять ограничение на маршруты рельсов
Я хочу написать плагин, который должен сделать патч обезьяны, чтобы добавить ограничение на все маршруты, определенные в rails application routs.rb я пытаюсь сделать следующий код в моем патче обезьяны, но это не работает. Какой правильный путь? Rai…
09 мар '13 в 08:07
2
ответа
Автозагрузка рельсов не выбирает залатанный обезьяной класс
Я работаю над приложением Rails 3 (в частности, 3.2.13) на ruby 1.9.3-p392. В одном из моих контроллеров действие "создать" может получить изображение (как ActionDispatch::Http::UploadedFile) Я пытаюсь monkeypatch ActionDispatch::Http::UploadedFil…
28 апр '13 в 21:47
2
ответа
Открытые занятия в модуле
Я знаю, что могу выполнить следующее, чтобы добавить методы в класс String class String def do_something puts self.size end end var = "test" var.do_something и это вернется 4 Я хочу иметь возможность иметь модуль с функцией, которая принимает строку…
16 апр '11 в 18:24