Class: Preserves::Selection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/preserves/selection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(domain_objects) ⇒ Selection

Returns a new instance of Selection.



8
9
10
# File 'lib/preserves/selection.rb', line 8

def initialize(domain_objects)
  self.domain_objects = domain_objects
end

Instance Attribute Details

#domain_objectsObject

Returns the value of attribute domain_objects.



6
7
8
# File 'lib/preserves/selection.rb', line 6

def domain_objects
  @domain_objects
end

Instance Method Details

#[](index) ⇒ Object



60
61
62
# File 'lib/preserves/selection.rb', line 60

def [](index)
  domain_objects[index]
end

#each(&block) ⇒ Object



12
13
14
# File 'lib/preserves/selection.rb', line 12

def each(&block)
  domain_objects.each(&block)
end

#firstObject



20
21
22
# File 'lib/preserves/selection.rb', line 20

def first
  domain_objects.first
end

#first!Object



24
25
26
27
# File 'lib/preserves/selection.rb', line 24

def first!
  fail "expected at least 1 result" if size == 0
  domain_objects.first
end

#lastObject



38
39
40
# File 'lib/preserves/selection.rb', line 38

def last
  domain_objects.last
end

#last!Object



42
43
44
45
# File 'lib/preserves/selection.rb', line 42

def last!
  fail "expected at least 1 result" if size == 0
  domain_objects.last
end

#onlyObject Also known as: one



47
48
49
50
# File 'lib/preserves/selection.rb', line 47

def only
  fail "expected only 1 result" if size > 1
  domain_objects.first
end

#only!Object Also known as: one!



52
53
54
55
# File 'lib/preserves/selection.rb', line 52

def only!
  fail "expected exactly 1 result" if size != 1
  domain_objects.first
end

#secondObject



29
30
31
# File 'lib/preserves/selection.rb', line 29

def second
  domain_objects.second
end

#second!Object



33
34
35
36
# File 'lib/preserves/selection.rb', line 33

def second!
  fail "expected at least 1 result" if size == 0
  domain_objects.second
end

#sizeObject



16
17
18
# File 'lib/preserves/selection.rb', line 16

def size
  domain_objects.size
end