Class: Mutiny::Mutants::MutantSet

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/mutiny/mutants/mutant_set.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*mutants) ⇒ MutantSet

Returns a new instance of MutantSet.



12
13
14
# File 'lib/mutiny/mutants/mutant_set.rb', line 12

def initialize(*mutants)
  @mutants = mutants
end

Instance Attribute Details

#mutantsObject (readonly)

Returns the value of attribute mutants.



10
11
12
# File 'lib/mutiny/mutants/mutant_set.rb', line 10

def mutants
  @mutants
end

Instance Method Details

#eql?(other) ⇒ Boolean Also known as: ==

Returns:

  • (Boolean)


33
34
35
# File 'lib/mutiny/mutants/mutant_set.rb', line 33

def eql?(other)
  other.mutants == mutants
end

#group_by_subjectObject



20
21
22
# File 'lib/mutiny/mutants/mutant_set.rb', line 20

def group_by_subject
  mutants.group_by(&:subject).dup
end

#hashObject



39
40
41
# File 'lib/mutiny/mutants/mutant_set.rb', line 39

def hash
  mutants.hash
end

#orderedObject



24
25
26
27
28
29
30
31
# File 'lib/mutiny/mutants/mutant_set.rb', line 24

def ordered
  group_by_subject.flat_map do |_, mutants|
    mutants.map.with_index do |mutant, index|
      mutant.index ||= index
      mutant
    end
  end
end

#subjectsObject



16
17
18
# File 'lib/mutiny/mutants/mutant_set.rb', line 16

def subjects
  mutants.map(&:subject).uniq
end