问题标签 [monkeypatching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2557 浏览

ruby - Ruby:向内置类添加自定义属性

问题:使用 Ruby 向现有类添加自定义方法 很简单,但是如何添加自定义属性?这是我正在尝试做的一个例子:

目标是构建类定义,使上面示例中不起作用的东西可以按预期工作。

更新:(澄清问题)原始问题中遗漏的一个方面:添加通常在类的初始化方法中设置的“默认值”也是一个目标。

更新:(为什么这样做)通常,只需创建一个继承自 Array 的自定义类(或您想要模拟的任何内置类)非常简单。这个问题源自一些“仅测试”代码,并不是试图忽略这种普遍接受的方法。

0 投票
2 回答
5309 浏览

jquery - 我可以替换或修改 jQuery UI 小部件上的功能吗?如何?(猴子补丁)

如果我想通过替换其中一个函数来调整 jQuery UI 对象的某些功能,我将如何去做呢?

示例:假设我想修改 jQuery 自动完成小部件呈现建议的方式。自动完成对象上有一个方法,如下所示:

我可以换这个吗?

我认为这可能被称为Monkey Patching

如何?我会使用什么语法?

0 投票
1 回答
883 浏览

python - 猴子在 python 中修补 time.time()

我有一个应用程序,为了测试,我需要用特定的时间戳替换 time.time() 调用,我过去使用 ruby​​ 做过

(此处提供代码:http: //github.com/zemariamm/Back-to-Future/blob/master/back_to_future.rb

但是我不知道如何使用 Python 来做到这一点。

有什么提示吗?干杯,泽玛丽亚

0 投票
1 回答
601 浏览

python - py2app 规定

py2app 文档提到__boot__.py了在主要 python 脚本之前运行的prescripts。我找不到在 setup.py 文件或构建过程中轻松指定任何指令的方法。

但是,我确实设法__boot__.py手动“破解”并_run(prescript)在我的主要命令之前添加了另一个命令_run(main_script),它似乎工作正常。然而,使用标准的 py2app 构建过程会更好。

我实际上想做的是在启动主脚本之前对我的 sites-packages.zip 文件进行猴子补丁。该指令主要检查服务器上的更新,如果有,下载它们,然后覆盖 site-packages.zip 文件。比从头开始重新安装应用程序要快得多。

有任何想法吗?

0 投票
1 回答
814 浏览

ruby-on-rails - Monkeypatch 在 rake 任务中使用插件提供的方法的模型?

在最近的一些重构中,我们改变了用户头像的存储方式,没有意识到一旦部署它会影响所有现有用户。所以现在我正在尝试编写一个 rake 任务来通过做这样的事情来解决这个问题。

当我尝试运行它时,虽然我得到了用户:类的未定义方法`has_attached_file'

我可以在脚本/控制台中执行此操作,但似乎无法从 rake 任务中找到回形针插件的方法。

0 投票
2 回答
573 浏览

c++ - Lua + SWIG 猴子补丁

我使用 SWIG 将一组类绑定到 lua。我知道 C++ 本身不支持猴子补丁,我也不想修改我的 C++ 对象,只是修改它们的 lua 表示。如果我想开始修补 SWIG 导出的 lua 表和对象,那么问题就来了,这样我就可以修改 lua 端提供的 API。

例如以下 lua 代码:

没有按预期工作。该行之后的行为仍然与原始 GetEnemies1 而不是 GetEnemies2 一致。

我该如何解决这个问题?

0 投票
3 回答
1435 浏览

c# - C#猴子补丁 - 有可能吗?

是否可以编写一个 C# 程序集,该程序集在加载时会将方法从另一个程序集中注入到一个类中?如果是,注入的方法是否可以从使用 DLR 的语言(如 IronPython)中获得?

我需要那个方法,如果可能的话,我想避免重新编译 IronPython。

0 投票
3 回答
1064 浏览

ruby - jekyll - 在 github 页面上自动向页面添加内容

有没有办法在 Jekyll 上获取页面的 url?我所说的页面是指非发布纺织品文件,例如about.html以下download.html层次结构:

我想做这样的事情:

这适用于帖子,因为它们的 url 包含在帖子的 to_liquid 方法中。另一方面,页面似乎不包含任何类似的东西 - 它们确实具有我需要的属性(或者看起来如此),但它们不会将它们导出到to_liquid; 我想重新定义它。有没有办法做到这一点?

我找到了 jekyll_extensions,但我不知道它是否适用于我的目标环境(github页面)。

如果可能的话,我想避免在所有 yaml 头上包含一个 url 参数。

非常感谢!

0 投票
3 回答
356 浏览

ruby - 红宝石宝石是否会发生冲突?

作为一个红宝石新手,我想知道,宝石会不会相互冲突?例如,如果 2 个 gem 覆盖了数组上的 << 方法,哪个会赢,或者有什么可以阻止这种情况?

谢谢

0 投票
3 回答
848 浏览

ruby - Ruby Monkey 修补陷阱

我正在寻找为什么在 ruby​​ 中扩展基类不是一个好主意的例子。我需要向一些人展示为什么它是一种需要小心使用的武器。

有什么恐怖故事可以分享吗?