class Zapata::Primitive::Klass
Public Class Methods
new(code)
click to toggle source
# File lib/zapata/primitive/klass.rb, line 6 def initialize(code) @code = code @moduls = Diver.current_moduls.dup Diver.access_level = :public Diver.current_klass = self dive_deeper Diver.current_klass = nil end
Public Instance Methods
node()
click to toggle source
# File lib/zapata/primitive/klass.rb, line 19 def node const, _, body = @code.to_a immediate_modul, klass = const.to_a chain = parent_modul_names + [immediate_modul, klass] name = chain.compact.join('::') type = @code.type OpenStruct.new( type: type, immediate_modul: immediate_modul, klass: klass, name: name, body: body ) end
parent_modul_names()
click to toggle source
# File lib/zapata/primitive/klass.rb, line 15 def parent_modul_names @moduls.map { |mod| mod&.name }.compact end