class Ssource::Source::RootObject

Attributes

elements[R]

Public Class Methods

from(file) click to toggle source
# File lib/ssource/source/root_object.rb, line 18
def self.from(file)
  Root.new(file)
end
new(file) click to toggle source
# File lib/ssource/source/root_object.rb, line 11
def initialize(file)
  elements = Ssource::SourceKitten.structure file
  @elements = elements.map { |element| Factory.build element }
end

Public Instance Methods

classes() click to toggle source
# File lib/ssource/source/root_object.rb, line 29
def classes
  elements.select { |e| e.is_a? Klass }
end
extensions() click to toggle source
# File lib/ssource/source/root_object.rb, line 33
def extensions
  elements.select { |e| e.is_a? Extension }
end
functions() click to toggle source
# File lib/ssource/source/root_object.rb, line 37
def functions
  elements.select { |e| e.is_a? Method }
end
pretty_print() click to toggle source
# File lib/ssource/source/root_object.rb, line 22
def pretty_print
  %i[classes functions extensions].each_with_object({}) do |instance_variable, hash|
    collections = send(instance_variable).map(&:pretty_print)
    hash[instance_variable.to_s.capitalize] = collections unless collections.empty?
  end
end