问题标签 [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.

0 投票
1 回答
80 浏览

perl - 在 Type::Tiny 自定义约束中运行强制?

我有一个自定义的 DateTime 类型,它定义了从字符串到 DateTime 的强制,如下所示:

我想在字典中使用该 DateTime 类型,如下所示:

然后将其称为:

我已经尝试添加coerce => 1到 的声明中whatsis,但这没有用。

如何创建从 Dict 继承并运行在成员类型上定义的类型强制的自定义类型?

0 投票
1 回答
322 浏览

perl - 在使用 perl Moo 的 new() 方法中使用子例程

我的问题如下:当我调用 new() 方法使用 perl Moo 创建一个对象时,我想使用一个子例程来构造一个数组。请看下面的例子。

基本上,我正在尝试从数据库中检索一些电子邮件,并且不用担心查询和数据库访问,因为当我执行以下操作时:

@emails 中的结果是预期的。但是,当我执行时:

我什至没有结果。

如果我能得到这个问题的答案,我将不胜感激。提前谢谢各位。

0 投票
1 回答
595 浏览

perl - perl Test::MockModule 与数据库访问

我从 Perl 的单元测试世界开始。这是我的问题:我在 Perl 中有一个类(我正在使用 Moo BTW),并且这个类有 3 个属性(我将把代码放在下面)。这些属性之一是数组,它是在构造函数中自动生成的。要生成数组,我需要访问数据库并执行一个查询。

现在我想运行单元测试来检查上一个类的行为。到目前为止,我正在使用 Test::MockModule 作为下一个:

我想模拟 get_db_handler 方法来检索 test-customer.db 处理程序并在这个本地数据库上运行查询。到目前为止,我收到以下错误:

脚本运行正常,我的意思是,代码没有问题。问题出在测试上。你能看看这个吗?我会很感激的。提前致谢。

0 投票
2 回答
540 浏览

perl - 如何模拟 Moo 角色中定义的方法?

给定以下角色:

以及以下消费类:

我想测试around修饰符中定义的行为。我该怎么做呢?似乎 Test::MockModule 不起作用:

编辑:我要测试的是修饰符中定义的 MyClass 与 MyRole的交互。around我想测试around修饰符中的代码是否符合我的想法。这是另一个更接近我的实际代码的示例:

所以我在这里要做的是模拟MyRole2::call返回一个静态文档,在我的测试夹具中定义,其中包含错误并测试异常是否被正确抛出。我知道如何使用Test::More::throws_ok或类似方法对其进行测试。我不知道该怎么做是模拟MyRole2::call不是 MyClass2::call

0 投票
1 回答
250 浏览

perl - Perl Moo,动态生成的访问器

我尝试将 Perl 闭包转换为 Moo 访问器,如下面的代码所示。不幸的是,该代码适用于 Moose,但会引发 Moo 异常。

请帮助我使用 Perl 闭包定义的读写访问器编写 Moo 代码(不是仅读取和存储简单值的默认访问器,而是应该调用我的闭包的读写访问器)。

0 投票
1 回答
407 浏览

perl - 用哈希“连接”一个 Moo 对象

在我的真实代码中,我想将 Moo(如果 Moo 不起作用,则为 Moose)对象与哈希(实际上是绑定的哈希)“同步”,以便读取 Moo 对象的属性将从中读取相应的值哈希并写入 Moo 对象的属性将存储到哈希中。

下面是一个简化的代码:

问题是传递给new函数的属性没有存储在 has 中$obj->base(但它们应该是)。在上面的代码示例中,属性已按应有的方式正确存储,c但并未存储到散列中。这是一个错误。ab

有什么好的方法来处理这种情况?

0 投票
1 回答
114 浏览

perl - 在 Perl Moo 对象中将空字符串自动转换为 undef

对于 Perl Moo 对象的某些字段,我想在将空字符串分配给带有undef.

那就是我想要的:$obj->x("")使该字段x未定义。

请帮助开发一个这样做的 Moo 扩展。


一种可能的方法:

但是有没有“更结构化”或“更具声明性”的方式来做到这一点?还有其他方法可以做到这一点吗?


下面是我实现它的完整示例。但是运行它会产生我不明白的错误:

使用示例:

以下是错误:

请帮助了解错误的原因。

0 投票
2 回答
382 浏览

perl - 如何更改属性类型?(珀尔穆)

我们使用 Perl Moo。

让我们定义了一组属性:

我想编写一个例程,将某些属性的 T 替换为 Maybe[T] 。例如:make_optional(qw(x y))应该使 type ofx Maybe[Str]和 type of y Maybe[Int]

Moo如何做到这一点?

0 投票
1 回答
96 浏览

perl - Moo:将属性添加到另一个(非当前)包

以下是我真实代码的简化示例:

Y我尝试从 package 中定义的函数向 package 添加一个属性X。这不起作用:

请帮助我如何从另一个包中定义的方法将属性添加到包中。

我应该切换到 Moose 吗?

0 投票
1 回答
86 浏览

perl - 使用 Sub::Quote 弱化捕获

我想削弱Sub::Quote生成的代码中捕获的变量。例如,这是未引用的替代方案:

和输出:

这是我的 Sub::Quote 尝试:

和输出:

显然被俘$y并没有被削弱。有没有办法改变生成的代码来削弱捕获的变量?

文档稀少,Sub::Quote实现复杂;我相当相信当前代码不可能做到这一点,但我很乐意被证明是错误的。