class Ssource::Source::Klass

Attributes

protocols[R]
superklass[R]

Public Class Methods

new(json) click to toggle source
Calls superclass method Ssource::Source::Element::new
# File lib/ssource/source/klass.rb, line 12
def initialize(json)
  super
  inherited_types = json.fetch('inheritedtypes', []).map { |hash| hash['key.name'] }
  @superklass = inherited_types.first
  @protocols = inherited_types[1..-1] || []
end

Public Instance Methods

class_methods() click to toggle source
# File lib/ssource/source/klass.rb, line 31
def class_methods
  methods.select(&:class?)
end
elements_variables() click to toggle source
# File lib/ssource/source/klass.rb, line 54
def elements_variables
  %i[variables instance_methods static_methods class_methods]
end
instance_methods() click to toggle source
# File lib/ssource/source/klass.rb, line 23
def instance_methods
  methods.select(&:instance?)
end
methods() click to toggle source
# File lib/ssource/source/klass.rb, line 19
def methods
  elements.select { |element| element.is_a? Method }
end
pretty_print() click to toggle source
# File lib/ssource/source/klass.rb, line 46
def pretty_print
  result = elements_variables.each_with_object({}) do |method, hash|
    collections = send(method).map(&:pretty_print)
    hash[method.to_s.capitalize] = collections unless collections.empty?
  end
  { display_name => result }
end
static_methods() click to toggle source
# File lib/ssource/source/klass.rb, line 27
def static_methods
  methods.select(&:static?)
end
to_hash() click to toggle source
Calls superclass method Ssource::Source::Element#to_hash
# File lib/ssource/source/klass.rb, line 39
def to_hash
  elements_variables.each_with_object(super) do |method, hash|
    collections = send(method).map(&:to_hash)
    hash[instance_variable.to_s.capitalize] = collections unless collections.empty?
  end
end
variables() click to toggle source
# File lib/ssource/source/klass.rb, line 35
def variables
  elements.select { |element| element.is_a? Variable }
end