Sha256: e6efc57dba14bbb087304d8a8e07eb6377167a8073748f7d2477711575e6669c
Contents?: true
Size: 1020 Bytes
Versions: 162
Compression:
Stored size: 1020 Bytes
Contents
require 'tins/xt/blank' module Tins module Full # Returns the object if it isn't blank (as in Object#blank?), otherwise it # returns nil. If a block was given as an argument and the object isn't # blank, the block is executed with the object as its first argument. If an # argument +dispatch+ was given and the object wasn't blank the method # given by dispatch is called on the object. This is the same as # foo.full?(&:bar) in the previous block form. def full?(dispatch = nil, *args) if blank? obj = nil #elsif Module === dispatch # TODO # dispatch.found?(self) elsif dispatch obj = __send__(dispatch, *args) obj = nil if obj.blank? else obj = self end if block_given? and obj yield obj else obj end end def all_full? if respond_to?(:all?) && all?(&:full?) block_given? ? yield(self) : self end end end class ::Object include Full end end
Version data entries
162 entries across 144 versions & 9 rubygems