我想修补补丁或扩展可枚举。我也想处理零个案例,我想出了以下测试用例和扩展:
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
测试通过,但这感觉不对,我想知道是否有更好的方法可以为has_elements调用返回false,或者我该如何处理?
答案 0 :(得分:0)
ActiveSupport gem已经具备此功能。如果您在Rails项目中,方法.empty?是可用的。否则,您需要包含activesupport gem并在需要此方法的文件中执行以下操作:
require 'active_support/core_ext/object/blank'