Ruby的".present?"没有Rails?



我正在开发一个用于自动化的"无Rails"Ruby守护进程(尽管理论上它在Rails目录中运行)。出于一般目的和问题的原则,我想找到(大多数)"本机"/常用方法来利用.present?/.blank?/.empty?/.nil?的 Ruby 版本来确定数组或(哈希)值是否存在并且不为空(即[]{})。

从我所阅读的内容(例如,Stack Overflow)和测试来看,所有这些函数似乎是特定于Rails的方法,是ActiveSupport(?)的一部分。

来自其他Web/解释器语言(PHP,Python,JS等),这是一个通用逻辑函数,大多数语言(大多数是数组)都以某种方式构建了此功能(例如,PHP的isset( ... )或JavaScript的.length)。

我知道.blank?有正则表达式的解决方法,但似乎.present?需要异常处理来确定它是否"存在")。我很难相信它不存在,但是如果没有Rails的参与,很少有人谈论Ruby。

Active Support被分解成小块,以便您可以加载所需的内容。对于.blank?.present?方法,只需满足以下条件就足够了:

require 'active_support/core_ext/object/blank.rb'

正如文档所说。

已经定义了 Object#nil?、Array#empty? 和 Hash#empty?,因此您无需require任何内容即可使用这些内容。

确保系统中安装了active_supportgem

您可以使用ActiveSupport,而无需在应用程序中包含所有边栏,这实际上很常见。

nil?empty?在标准库中定义。

例如,String#empty?只是测试长度是否为 0。

要使用主动支持,只需安装 gem 或将其添加到您的 gem 文件中,然后:

require 'active_support'

该文档还指出,您可以选择所需的核心扩展:

require 'active_support/core_ext/object/blank'

相关内容

  • 没有找到相关文章

最新更新