Нет, для этого нет сокращений. Вы можете определить метод:
def really_empty?(x)
x.strip.empty?
end
и используйте method
:
array.reject(&method(:really_empty?))
или используйте лямбду:
really_empty = ->(x) { x.strip.empty? }
array.reject(&really_empty)
но я бы не назвал ни одного из них лучше, если бы у вас не было использования really_empty?
в достаточном количестве мест, где логика имеет смысл.
Однако, поскольку вы используете Rails, вы можете просто использовать blank?
вместо .strip.empty?
:
array.reject(&:blank?)
Обратите внимание, что nil.blank?
истинно, тогда как nil.strip.empty?
просто вручает вам исключение, поэтому они не совсем эквивалентны; однако, вы, вероятно, также хотите отклонить nil
с, так что использование blank?
может быть лучше в любом случае. blank?
также возвращает true для false
, {}
и []
, но, вероятно, их нет в вашем массиве строк.