我正在为自动化开发一个“无Rails”的Ruby守护进程(虽然理论上它在Rails目录中运行)。出于一般目的和问题的原则,我想找到(大多数)“本地”/常用方式来使用Ruby版本的.present?
/ .blank?
/ .empty?
/ { {1}}以确定数组或(哈希)值是否存在且不为空(即.nil?
或[]
)。
从我read(例如Stack Overflow)开始测试,所有这些函数似乎都是Rails特定的方法,是ActiveSupport(?)的一部分。
来自其他网络/解释器语言(PHP,Python,JS等),这是一般逻辑函数,大多数语言(大多数数组)都以这种或那种方式构建此功能(例如,PHP的{}
或JavaScript的isset( ... )
)。
我理解.length
有RegEx解决方法,但是.blank?
似乎需要异常处理才能确定它是否“存在”。我很难相信它不存在,但是在没有Rails参与的情况下,很少谈论Ruby。
答案 0 :(得分:3)
Active Support
分成小块,以便您可以加载您需要的内容。对于.blank?
和.present?
方法,只需要:
require 'active_support/core_ext/object/blank.rb'
已定义 Object#nil?,Array#empty?和Hash#empty?,因此您无需require
即可使用这些内容。
确保系统中安装了active_support
gem
答案 1 :(得分:0)
您可以使用ActiveSupport而不在应用中包含所有rails,这实际上很常见。
nil?
和empty?
在标准库中定义。
例如,String#empty?
只是测试长度是否为0。
要使用有效支持,只需安装gem或将其添加到gemfile中:
require 'active_support'
documentation还表示您可以选择所需的核心扩展程序:
require 'active_support/core_ext/object/blank'