问题标签 [dry-rb]

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 回答
70 浏览

ruby - 初始化前找到子类目录配置dry-view路径

我在多个 Rails 引擎中使用干视图,我必须在每个子类中复制配置。

原因是,我的观点可以深深地嵌套在appie. 的子文件夹中:

此外,BaseView在大多数情况下,该类并不存在于同一个 gem 中。

如果我从类中删除该configureSubView,则不再找到该模板。该__dir__变量包含BaseView类的目录路径。

我试图在可以访问子类目录的基类中实现初始化后的方法。但此时由于配置限制,无法再进行dry-rb配置。配置必须在初始化之前进行。

我能想出的唯一解决方案是configure在每个类中复制块,或者有一个配置所有可能模板路径的 gem/engine 特定的父类。

在这种情况下,查找在每个子类中实现的某个方法的目录的常用方法在这种情况下也不起作用,因为大多数视图甚至没有定义方法。

有没有更好的方法在这个类的加载阶段在父类的方法中访问给定类的目录?

0 投票
1 回答
1298 浏览

ruby - 如何为 Dry::Validation.Params 方案设置默认值?

我有下一个计划

如果我通过空哈希进行验证,我会得到空输出,但我想为我的数据设置默认值。

我试过Dry::Types.default了,但它没有在输出中添加默认值。这就是我尝试过的。

有可能做我想做的事吗?

0 投票
1 回答
85 浏览

ruby-on-rails - dry-rb_autoinject 和 GraphQL

我正在尝试制作一个 GraphQL API,但也通过dry-rb_autoinject 实现依赖注入。我设法通过控制器和上下文来做到这一点。这是我的测试 QueryType。

而在 graphql_controller 我只是做

但是这个解决方案似乎并不是很好,因为我导入了所有服务,即使是那些我不需要的当前字段。有没有更好的方法,也许不是通过上下文?

0 投票
2 回答
44 浏览

ruby-on-rails - 使用 DryValidations 验证查询参数时缺少模块


我有一个jsonapi端点,我在其中获取查询参数“include”,其中几个对象由“,”分隔 为了实现这一点,我根据文档制作了这个:

现在,当我运行我的测试时,我得到了这个错误:

失败/错误:IncludeRelatedObject = Types::String.constructor do |itm| itm.split(',')&.map :chomp end

NameError: 未初始化的常量 CustomTypes::Types

这是我的验证:

任何想法我的代码有什么问题?

0 投票
1 回答
1297 浏览

ruby - dry-struct 如何有条件地验证一个属性?

我正在使用干类型和干结构,我想进行条件验证。

对于班级:

如果'tax_type =='IS' ,我想验证tax_ammount为整数和强制性。

0 投票
1 回答
167 浏览

rspec - 如何模拟dry-rb(使用inf改革合约)验证配置方法

我的问题是我想模拟我的自定义验证方法,该方法从数据库返回一些数据(id 列表 - 检查给定的 id 是否在我的数据库中)。

少说话,多代码:在我的 Newsletter::Contract::Create 类中

在测试中,我尝试运行

但显然我收到

所以问题是我的自定义验证方法需要什么对象,所以我可以模拟它?;]

0 投票
1 回答
312 浏览

ruby - Dry-validation:不区分大小写的`included_in?` 使用Dry::Validation.Schema 进行验证

我正在尝试为预定的有效品牌列表创建验证,作为 ETL 管道的一部分。我的验证要求不区分大小写,因为某些品牌是无关紧要的复合词或缩写。

我创建了一个自定义谓词,但我不知道如何生成适当的错误消息。

我阅读了错误消息文档,但很难解释:

  • 如何为我的自定义谓词构建语法?
  • 我可以直接在我的模式类中应用消息,而不引用外部 .yml 文件吗?我看了看这里,它似乎不像我希望的那样简单。

下面我给出的代码代表了我使用内置谓词和自定义谓词尝试过的内容,每个谓词都有自己的问题。如果有更好的方法来编写实现相同目标的规则,我很想学习它。

0 投票
1 回答
216 浏览

ruby - 自动截断字符串

以干验证为例:

我想创建一个新类型,StrictString它将使用谓词信息,喜欢max_size并截断它。

问题:我无权访问Types::String.constructor. 如果我反过来,即通过自定义谓词,我不能只返回真或假,我看不到如何更改参数

我想用霰弹枪杀死一只苍蝇吗?

0 投票
1 回答
136 浏览

ruby - Dry::Web::Container 通过多次调用来产生不同的对象来解析

我正在尝试编写一个测试来断言所有定义的操作都在成功运行时被调用。我在列表中定义了给定进程的操作,并从容器中解析它们,如下所示:

然后我测试如下:

这会失败,因为container[operation_name]从内部调用ProcessController和从测试内部调用会产生不同的操作实例。我可以通过比较对象 ID 来验证它。除此之外,我知道代码工作正常并且所有操作都被调用。

容器配置为自动注册这些操作,并在测试开始运行之前完成。

如何使解析相同的键返回相同的项目?

0 投票
1 回答
891 浏览

ruby-on-rails - Ruby on Rails:干模式干验证不验证存在

我在 Rails 应用程序中使用干验证和干模式并实施建议以检查如何检查title属性的存在。尽管如此,在完成上述操作后,它仍然说

但是,标题属性肯定包含在发送的原始参数中。有人有什么建议吗?

以下是发送的原始参数,其中明确包括“标题”: