это плохой способ обработки в Ruby - PullRequest
2 голосов
/ 14 августа 2010

Я хочу, чтобы обезьяна исправила или расширила перечислимое. Я хочу также обработать ноль случаев, и у меня есть следующие тестовые примеры и расширения:

module Enumerable
  def has_elements
    (self) && (self.size > 0)
  end
end

class NilClass
  def has_elements
    false
  end
end

class EnumerableExtensionsTest < ActiveSupport::TestCase

  should "return false for nil" do
    d = nil

    assert_equal(false, d.has_elements)
  end

end

Тест пройден, но это не так, и мне было интересно, есть ли лучший способ вернуть false для вызова has_elements, или как мне это обработать?

1 Ответ

0 голосов
/ 11 февраля 2011

Gem ActiveSupport уже имеет эту функцию.Если вы находитесь в проекте Rails, метод .empty?доступен.В противном случае вам нужно будет включить гем activesupport и выполнить следующие действия внутри файлов, для которых требуется этот метод:

require 'active_support/core_ext/object/blank'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...