Ruby 的 `.present?` 没有 Rails?
Ruby's `.present?` without Rails?
我正在开发一个 "Rails-less" Ruby 自动化守护进程(尽管理论上它在 Rails 目录中运行)。对于一般目的和事情的原则,我想找到(最)"native"/常用的方法来利用 .present?
/.blank?
/[ 的 Ruby 版本=14=]/.nil?
来标识数组或(散列)值是否存在且不为空(即 []
或 {}
)。
根据我 read(例如 Stack Overflow)和测试,所有这些函数似乎都是 Rails 特定的方法,是 ActiveSupport(?) 的一部分。
来自其他 web/interpreter 语言(PHP、Python、JS 等),这是大多数语言(有数组,最多)都有的通用逻辑函数此功能以某种方式构建(例如,PHP 的 isset( ... )
或 JavaScript 的 .length
)。
我知道 .blank?
有 RegEx 解决方法,但 .present?
似乎需要异常处理来确定它是否是 "present")。我很难相信它不存在,但是没有 Rails 参与的人很少谈论 Ruby。
您可以使用 ActiveSupport 而无需在您的应用中包含所有 rails,这实际上很常见。
nil?
和 empty?
在标准库中定义。
例如,String#empty?
只是测试长度是否为 0。
要使用主动支持,只需安装 gem 或将其添加到您的 gem 文件中,然后:
require 'active_support'
documentation 还声明您可以挑选您想要的核心扩展:
require 'active_support/core_ext/object/blank'
Active Support
被分成小块,以便您可以加载您需要的内容。对于 .blank?
和 .present?
方法,要求就足够了:
require 'active_support/core_ext/object/blank.rb'
Object#nil? , Array#empty? and Hash#empty? 已经定义,所以你不需要任何 require
来使用它们。
确保 active_support
gem 安装在您的系统中
我正在开发一个 "Rails-less" Ruby 自动化守护进程(尽管理论上它在 Rails 目录中运行)。对于一般目的和事情的原则,我想找到(最)"native"/常用的方法来利用 .present?
/.blank?
/[ 的 Ruby 版本=14=]/.nil?
来标识数组或(散列)值是否存在且不为空(即 []
或 {}
)。
根据我 read(例如 Stack Overflow)和测试,所有这些函数似乎都是 Rails 特定的方法,是 ActiveSupport(?) 的一部分。
来自其他 web/interpreter 语言(PHP、Python、JS 等),这是大多数语言(有数组,最多)都有的通用逻辑函数此功能以某种方式构建(例如,PHP 的 isset( ... )
或 JavaScript 的 .length
)。
我知道 .blank?
有 RegEx 解决方法,但 .present?
似乎需要异常处理来确定它是否是 "present")。我很难相信它不存在,但是没有 Rails 参与的人很少谈论 Ruby。
您可以使用 ActiveSupport 而无需在您的应用中包含所有 rails,这实际上很常见。
nil?
和 empty?
在标准库中定义。
例如,String#empty?
只是测试长度是否为 0。
要使用主动支持,只需安装 gem 或将其添加到您的 gem 文件中,然后:
require 'active_support'
documentation 还声明您可以挑选您想要的核心扩展:
require 'active_support/core_ext/object/blank'
Active Support
被分成小块,以便您可以加载您需要的内容。对于 .blank?
和 .present?
方法,要求就足够了:
require 'active_support/core_ext/object/blank.rb'
Object#nil? , Array#empty? and Hash#empty? 已经定义,所以你不需要任何 require
来使用它们。
确保 active_support
gem 安装在您的系统中