class Mutiny::Subjects::SubjectSet

Attributes

subjects[R]

Public Class Methods

new(subjects) click to toggle source
# File lib/mutiny/subjects/subject_set.rb, line 9
def initialize(subjects)
  @subjects = subjects
end

Public Instance Methods

==(other)
Alias for: eql?
[](index) click to toggle source
# File lib/mutiny/subjects/subject_set.rb, line 17
def [](index)
  subjects.detect { |s| s.name == index }
end
eql?(other) click to toggle source
# File lib/mutiny/subjects/subject_set.rb, line 28
def eql?(other)
  is_a?(other.class) && other.subjects == subjects
end
Also aliased as: ==
names() click to toggle source
# File lib/mutiny/subjects/subject_set.rb, line 13
def names
  @names ||= map(&:name).sort
end
per_file() click to toggle source

Returns a new SubjectSet which contains only one subject per source file For source files that contain more than one subject (i.e., Ruby module), the subjects are ordered by name alphabetically and only the first is used

# File lib/mutiny/subjects/subject_set.rb, line 24
def per_file
  self.class.new(group_by(&:path).values.map { |subjects| subjects.sort_by(&:name).first })
end