Sha256: 389f3bb8cc2d86f8d4c5bfa73df30022f5c6e9c0682ba5e0a069db5cac94743d
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
module Preserves class Selection include Enumerable attr_accessor :domain_objects def initialize(domain_objects) self.domain_objects = domain_objects end def each(&block) domain_objects.each(&block) end def size domain_objects.size end def first domain_objects.first end def first! fail "expected at least 1 result" if size == 0 domain_objects.first end def second domain_objects.second end def second! fail "expected at least 1 result" if size == 0 domain_objects.second end def last domain_objects.last end def last! fail "expected at least 1 result" if size == 0 domain_objects.last end def only fail "expected only 1 result" if size > 1 domain_objects.first end def only! fail "expected exactly 1 result" if size != 1 domain_objects.first end alias_method :one, :only alias_method :one!, :only! def [](index) domain_objects[index] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
preserves-0.1.0 | lib/preserves/selection.rb |