问题标签 [moo]
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.
perl - 在 Type::Tiny 自定义约束中运行强制?
我有一个自定义的 DateTime 类型,它定义了从字符串到 DateTime 的强制,如下所示:
我想在字典中使用该 DateTime 类型,如下所示:
然后将其称为:
我已经尝试添加coerce => 1
到 的声明中whatsis
,但这没有用。
如何创建从 Dict 继承并运行在成员类型上定义的类型强制的自定义类型?
perl - 在使用 perl Moo 的 new() 方法中使用子例程
我的问题如下:当我调用 new() 方法使用 perl Moo 创建一个对象时,我想使用一个子例程来构造一个数组。请看下面的例子。
基本上,我正在尝试从数据库中检索一些电子邮件,并且不用担心查询和数据库访问,因为当我执行以下操作时:
@emails 中的结果是预期的。但是,当我执行时:
我什至没有结果。
如果我能得到这个问题的答案,我将不胜感激。提前谢谢各位。
perl - perl Test::MockModule 与数据库访问
我从 Perl 的单元测试世界开始。这是我的问题:我在 Perl 中有一个类(我正在使用 Moo BTW),并且这个类有 3 个属性(我将把代码放在下面)。这些属性之一是数组,它是在构造函数中自动生成的。要生成数组,我需要访问数据库并执行一个查询。
现在我想运行单元测试来检查上一个类的行为。到目前为止,我正在使用 Test::MockModule 作为下一个:
我想模拟 get_db_handler 方法来检索 test-customer.db 处理程序并在这个本地数据库上运行查询。到目前为止,我收到以下错误:
脚本运行正常,我的意思是,代码没有问题。问题出在测试上。你能看看这个吗?我会很感激的。提前致谢。
perl - 如何模拟 Moo 角色中定义的方法?
给定以下角色:
以及以下消费类:
我想测试around
修饰符中定义的行为。我该怎么做呢?似乎 Test::MockModule 不起作用:
编辑:我要测试的是修饰符中定义的 MyClass 与 MyRole的交互。around
我想测试around
修饰符中的代码是否符合我的想法。这是另一个更接近我的实际代码的示例:
所以我在这里要做的是模拟MyRole2::call
返回一个静态文档,在我的测试夹具中定义,其中包含错误并测试异常是否被正确抛出。我知道如何使用Test::More::throws_ok
或类似方法对其进行测试。我不知道该怎么做是模拟MyRole2::call而不是 MyClass2::call
。
perl - Perl Moo,动态生成的访问器
我尝试将 Perl 闭包转换为 Moo 访问器,如下面的代码所示。不幸的是,该代码适用于 Moose,但会引发 Moo 异常。
请帮助我使用 Perl 闭包定义的读写访问器编写 Moo 代码(不是仅读取和存储简单值的默认访问器,而是应该调用我的闭包的读写访问器)。
perl - 用哈希“连接”一个 Moo 对象
在我的真实代码中,我想将 Moo(如果 Moo 不起作用,则为 Moose)对象与哈希(实际上是绑定的哈希)“同步”,以便读取 Moo 对象的属性将从中读取相应的值哈希并写入 Moo 对象的属性将存储到哈希中。
下面是一个简化的代码:
问题是传递给new
函数的属性没有存储在 has 中$obj->base
(但它们应该是)。在上面的代码示例中,属性已按应有的方式正确存储,c
但并未存储到散列中。这是一个错误。a
b
有什么好的方法来处理这种情况?
perl - 在 Perl Moo 对象中将空字符串自动转换为 undef
对于 Perl Moo 对象的某些字段,我想在将空字符串分配给带有undef
.
那就是我想要的:$obj->x("")
使该字段x
未定义。
请帮助开发一个这样做的 Moo 扩展。
一种可能的方法:
但是有没有“更结构化”或“更具声明性”的方式来做到这一点?还有其他方法可以做到这一点吗?
下面是我实现它的完整示例。但是运行它会产生我不明白的错误:
使用示例:
以下是错误:
请帮助了解错误的原因。
perl - 如何更改属性类型?(珀尔穆)
我们使用 Perl Moo。
让我们定义了一组属性:
我想编写一个例程,将某些属性的 T 替换为 Maybe[T] 。例如:make_optional(qw(x y))
应该使 type ofx
Maybe[Str]
和 type of y
Maybe[Int]
。
Moo如何做到这一点?
perl - Moo:将属性添加到另一个(非当前)包
以下是我真实代码的简化示例:
Y
我尝试从 package 中定义的函数向 package 添加一个属性X
。这不起作用:
请帮助我如何从另一个包中定义的方法将属性添加到包中。
我应该切换到 Moose 吗?
perl - 使用 Sub::Quote 弱化捕获
我想削弱Sub::Quote生成的代码中捕获的变量。例如,这是未引用的替代方案:
和输出:
这是我的 Sub::Quote 尝试:
和输出:
显然被俘$y
并没有被削弱。有没有办法改变生成的代码来削弱捕获的变量?
文档稀少,Sub::Quote
实现复杂;我相当相信当前代码不可能做到这一点,但我很乐意被证明是错误的。