Ruby的`.present?`没有Rails吗?

Jon*_*han 2 ruby daemon standard-library daemons ruby-daemons

我正在开发用于自动化的“无轨” Ruby守护进程(尽管理论上它在Rails目录中运行)。对于一般用途和问题的原则,我想找到(最)“原生” /共同利用的一个Ruby版本的方式.present?/ .blank?/ .empty?/ .nil?以确定是否存在一个数组或一个(哈希)值,不为空(即[]{})。

通过我的阅读(例如,堆栈溢出)和测试,所有这些函数似乎都是特定于Rails的方法,是ActiveSupport(?)的一部分。

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

我知道有针对的RegEx解决方法.blank?,但.present?似乎需要进行异常处理才能确定其是否“存在”)。我很难相信它不存在,但是在没有Rails参与的情况下很少谈论Ruby。

Mar*_*sky 5

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

require 'active_support/core_ext/object/blank.rb'
Run Code Online (Sandbox Code Playgroud)

正如文档所说

对象#nil?Array#empty?Hash#empty?已经定义,因此您不需要任何require使用。

确保active_support系统中已安装gem