Class: DissociatedIntrospection::Inspection

Inherits:
Object
  • Object
show all
Defined in:
lib/dissociated_introspection/inspection.rb

Instance Method Summary collapse

Constructor Details

#initialize(file:, parent_class_replacement: :RecordingParent) ⇒ Inspection

Returns a new instance of Inspection.

Parameters:

  • file (File)


8
9
10
11
# File 'lib/dissociated_introspection/inspection.rb', line 8

def initialize(file:, parent_class_replacement: :RecordingParent)
  @file                     = file
  @parent_class_replacement = parent_class_replacement
end

Instance Method Details

#class_macrosArray

Returns:

  • (Array)


19
20
21
# File 'lib/dissociated_introspection/inspection.rb', line 19

def class_macros
  get_class.__missing_class_macros__
end

#extended_modulesArray<Module>

Returns:

  • (Array<Module>)


24
25
26
# File 'lib/dissociated_introspection/inspection.rb', line 24

def extended_modules
  find_class_macro_by_type(:extend) { |a| add_method_name_wo_parent a.first }
end

#get_classClass

Returns:

  • (Class)


14
15
16
# File 'lib/dissociated_introspection/inspection.rb', line 14

def get_class
  @get_class ||= _get_class
end

#included_modulesArray<Module>

Returns:

  • (Array<Module>)


29
30
31
# File 'lib/dissociated_introspection/inspection.rb', line 29

def included_modules
  find_class_macro_by_type(:include) { |a| add_method_name_wo_parent a.first }
end

#locally_defined_constants(type = nil) ⇒ Array<Symbol>

Returns:

  • (Array<Symbol>)


45
46
47
48
49
# File 'lib/dissociated_introspection/inspection.rb', line 45

def locally_defined_constants(type=nil)
  consts = get_class.constants - get_class.__missing_constants__.keys - [:BasicObject]
  return consts unless type
  consts.select{ |c| get_class.const_get(c).is_a?(type)}
end

#missing_constantsHash{String => Module}

Returns:

  • (Hash{String => Module})


39
40
41
# File 'lib/dissociated_introspection/inspection.rb', line 39

def missing_constants
  get_class.__missing_constants__
end

#parsed_sourceDissociatedIntrospection::RubyClass



52
53
54
# File 'lib/dissociated_introspection/inspection.rb', line 52

def parsed_source
  @parsed_source ||= RubyClass.new(source: file.read)
end

#prepend_modulesArray<Module>

Returns:

  • (Array<Module>)


34
35
36
# File 'lib/dissociated_introspection/inspection.rb', line 34

def prepend_modules
  find_class_macro_by_type(:prepend) { |a| add_method_name_wo_parent a.first }
end

#sandbox_moduleModule

Returns:

  • (Module)


57
58
59
# File 'lib/dissociated_introspection/inspection.rb', line 57

def sandbox_module
  @sandbox_module ||= Module.new
end