Ruby `.present?` Без Rails?
Я разрабатываю "Rails-менее" демон Ruby для автоматизации (хотя теоретически он работает в каталоге Rails). Для общих целей и принципа, я хотел бы найти (наиболее) "родной"/ распространенный способ использования версии Ruby .present?
/.blank?
/.empty?
/.nil?
определить, существует ли массив или значение (хеш) и не является ли он пустым (т. е. []
или же {}
).
Из того, что я прочитал (например, переполнение стека) и протестировал, все эти функции кажутся специфичными для Rails методами, частью ActiveSupport(?).
Исходя из других языков веб / интерпретаторов (PHP, Python, JS и т. Д.), Это общая логическая функция, большинство языков (с массивами, которых большинство) имеют эту функциональность, построенную тем или иным способом (например, PHP isset( ... )
или JavaScript .length
).
Я понимаю, что есть обходные пути для RegEx .blank?
, но .present?
кажется, что для идентификации, если это "присутствует", потребуется обработка исключений). Мне трудно поверить, что его не существует, но мало говорят о Ruby без участия Rails.
2 ответа
Active Support
разбит на мелкие кусочки, так что вы можете загрузить именно то, что вам нужно. За .blank?
а также .present?
Для методов было бы достаточно потребовать:
require 'active_support/core_ext/object/blank.rb'
Объект # ноль? Массив # пуст? а хэш # пустой? уже определены, так что вам ничего не нужно require
использовать те.
Удостовериться active_support
драгоценный камень установлен в вашей системе
Вы можете использовать ActiveSupport, не включая все рельсы в ваше приложение, это довольно часто.
nil?
а также empty?
определены в стандартной библиотеке.
Например, String#empty?
просто тестирование, если длина равна 0.
Чтобы использовать активную поддержку, просто установите гем или добавьте его в свой гемфайл, затем:
require 'active_support'
В документации также говорится, что вы можете выбрать нужные расширения ядра:
require 'active_support/core_ext/object/blank'