Class: Ssource::Source::Klass

Inherits:
Element
  • Object
show all
Defined in:
lib/ssource/source/klass.rb

Direct Known Subclasses

Extension

Instance Attribute Summary

Attributes inherited from Element

#accessibility, #elements, #kind, #name

Instance Method Summary collapse

Methods inherited from Element

#display_name

Constructor Details

#initialize(json) ⇒ Klass

Returns a new instance of Klass.



8
9
10
# File 'lib/ssource/source/klass.rb', line 8

def initialize(json)
  super
end

Instance Method Details

#class_methodsObject



24
25
26
# File 'lib/ssource/source/klass.rb', line 24

def class_methods
  methods.select(&:class?)
end

#elements_variablesObject



47
48
49
# File 'lib/ssource/source/klass.rb', line 47

def elements_variables
  %i[variables instance_methods static_methods class_methods]
end

#instance_methodsObject



16
17
18
# File 'lib/ssource/source/klass.rb', line 16

def instance_methods
  methods.select(&:instance?)
end

#methodsObject



12
13
14
# File 'lib/ssource/source/klass.rb', line 12

def methods
  elements.select { |element| element.is_a? Method }
end

#pretty_printObject



39
40
41
42
43
44
45
# File 'lib/ssource/source/klass.rb', line 39

def pretty_print
  result = elements_variables.each_with_object(super) do |method, hash|
    collections = send(method).map(&:pretty_print)
    hash[instance_variable.to_s.capitalize] = collections unless collections.empty?
  end
  { display_name => result }
end

#static_methodsObject



20
21
22
# File 'lib/ssource/source/klass.rb', line 20

def static_methods
  methods.select(&:static?)
end

#to_hashObject



32
33
34
35
36
37
# File 'lib/ssource/source/klass.rb', line 32

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

#variablesObject



28
29
30
# File 'lib/ssource/source/klass.rb', line 28

def variables
  elements.select { |element| element.is_a? Variable }
end