Class: Mirrors::PackageMirror

Inherits:
Mirror
  • Object
show all
Defined in:
lib/mirrors/package_mirror.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Mirror

#initialize, #mirrors?, #reflectee, #subject_id

Constructor Details

This class inherits a constructor from Mirrors::Mirror

Class Method Details

.reflect(name) ⇒ Object



6
7
8
# File 'lib/mirrors/package_mirror.rb', line 6

def self.reflect(name)
  new(name)
end

Instance Method Details

#childrenObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mirrors/package_mirror.rb', line 18

def children
  names = PackageInference.contents_of_package(@subject)
  classes = (names || [])
    .map { |n| Object.const_get(n) }
    .select { |c| c.is_a?(Module) }
    .sort_by(&:name)
  class_mirrors = mirrors(classes)

  # .map    { |pkg| pkg.sub(/#{Regexp.quote(@subject)}:.*?:.*/) }
  subpackages = PackageInference.qualified_packages
    .select { |pkg| pkg.start_with?("#{@subject}:") }
    .sort

  puts subpackages.inspect

  package_mirrors = subpackages.map { |pkg| PackageMirror.reflect(pkg) }
  package_mirrors.concat(class_mirrors)
end

#fullnameObject



14
15
16
# File 'lib/mirrors/package_mirror.rb', line 14

def fullname
  @subject
end

#nameObject



10
11
12
# File 'lib/mirrors/package_mirror.rb', line 10

def name
  @subject.sub(/.*:/, '')
end