module RubyToUML::UMLInfoGenerator

Constants

ClassInfo
InstanceMethodInfo
ModuleInfo
RelationshipInfo
SingletonMethodInfo

Public Class Methods

process_code(code) click to toggle source
# File lib/ruby_to_uml/uml_info_generator/uml_info_generator.rb, line 30
def self.process_code(code)
  top_level_node = Parser::CurrentRuby.parse(code)
  parse_ast_to_uml_info(top_level_node)
end
process_file(file_path) click to toggle source
# File lib/ruby_to_uml/uml_info_generator/uml_info_generator.rb, line 25
def self.process_file(file_path)
  top_level_node = Parser::CurrentRuby.parse_file(file_path)
  parse_ast_to_uml_info(top_level_node)
end
process_files(file_paths) click to toggle source
# File lib/ruby_to_uml/uml_info_generator/uml_info_generator.rb, line 9
def self.process_files(file_paths)
  uml_infos = file_paths.each_with_object([]) do |file_path, uml_infos|
    uml_infos << process_file(file_path)
  end

  uml_infos.reduce(:merge)
end
process_multiple_code_snippets(code_snippets) click to toggle source
# File lib/ruby_to_uml/uml_info_generator/uml_info_generator.rb, line 17
def self.process_multiple_code_snippets(code_snippets)
  uml_infos = code_snippets.each_with_object([]) do |code, uml_infos|
    uml_infos << process_code(code)
  end

  uml_infos.reduce(:merge)
end

Private Class Methods

parse_ast_to_uml_info(top_level_node) click to toggle source
# File lib/ruby_to_uml/uml_info_generator/uml_info_generator.rb, line 35
def self.parse_ast_to_uml_info(top_level_node)
  processor = ASTProcessor.new
  processor.process(top_level_node)
  UMLInfo.new(processor.classes, processor.modules, processor.relationships)
end