class RubyToUML::UMLInfoGenerator::UMLInfo
Attributes
classes[R]
modules[R]
relationships[R]
Public Class Methods
new(classes, modules, relationships)
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 37 def initialize(classes, modules, relationships) @classes = classes @modules = modules @relationships = relationships end
Public Instance Methods
class_instance_methods()
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 51 def class_instance_methods classes.map { |class_info| class_info.instance_methods_info.map(&:to_s).join("\n") } end
class_instance_variables()
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 67 def class_instance_variables classes.map(&:instance_variables_info) end
class_names()
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 43 def class_names classes.map(&:name) end
class_singleton_methods()
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 59 def class_singleton_methods classes.map { |class_info| class_info.singleton_methods_info.map(&:to_s).join("\n") } end
merge(other_uml_info)
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 75 def merge(other_uml_info) unique_relationships = (relationships + other_uml_info.relationships).uniq unique_classes = merge_classes(classes, other_uml_info.classes) unique_modules = merge_modules(modules, other_uml_info.modules) UMLInfo.new(unique_classes, unique_modules, unique_relationships) end
module_instance_methods()
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 55 def module_instance_methods modules.map { |class_info| class_info.instance_methods_info.map(&:to_s).join("\n") } end
module_names()
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 47 def module_names modules.map(&:name) end
module_singleton_methods()
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 63 def module_singleton_methods modules.map { |class_info| class_info.singleton_methods_info.map(&:to_s).join("\n") } end
relationship_descriptions()
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 71 def relationship_descriptions relationships.map(&:to_s) end
Private Instance Methods
merge_attributes(_objects, getters)
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 127 def merge_attributes(_objects, getters) lambda do |objects| example_object = objects[0] uniq_attributes = [] getters.each do |getter| attribute = [] objects.each do |object| object.send(getter) attribute << object.send(getter) end uniq_attributes << attribute.flatten.uniq end klass = example_object.class klass.new(example_object.name, *uniq_attributes) end end
merge_class_attributes(classes)
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 117 def merge_class_attributes(classes) getters = %i[instance_methods_info singleton_methods_info instance_variables_info] merge_attributes(classes, getters) end
merge_classes(classes, other_classes)
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 84 def merge_classes(classes, other_classes) merge_entities(classes, other_classes, &merge_class_attributes(classes)) end
merge_entities(group, other_group, &merge_attributes)
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 92 def merge_entities(group, other_group, &merge_attributes) unique_entities = [] merged = [] distinct_entities = (group + other_group).uniq distinct_entities.each do |entity_1| next if merged.include?(entity_1.name) matched_entities = [] distinct_entities.each do |entity_2| matched_entities << entity_2 if entity_1.name == entity_2.name && entity_1.object_id != entity_2.object_id end if matched_entities.empty? unique_entities << entity_1 else unique_entities << merge_attributes.call([entity_1, *matched_entities]) merged << entity_1.name end end unique_entities end
merge_module_attributes(classes)
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 122 def merge_module_attributes(classes) getters = %i[instance_methods_info singleton_methods_info] merge_attributes(classes, getters) end
merge_modules(modules, other_modules)
click to toggle source
# File lib/ruby_to_uml/uml_info_generator/info_classes.rb, line 88 def merge_modules(modules, other_modules) merge_entities(modules, other_modules, &merge_module_attributes(modules)) end