Class: ClassMetrix::MultiTypeExtractor
- Inherits:
-
Object
- Object
- ClassMetrix::MultiTypeExtractor
- Defined in:
- lib/class_metrix/extractors/multi_type_extractor.rb
Instance Method Summary collapse
- #extract ⇒ Object
-
#initialize(classes, types, filters, extraction_config = {}) ⇒ MultiTypeExtractor
constructor
A new instance of MultiTypeExtractor.
Constructor Details
#initialize(classes, types, filters, extraction_config = {}) ⇒ MultiTypeExtractor
Returns a new instance of MultiTypeExtractor.
8 9 10 11 12 13 14 15 |
# File 'lib/class_metrix/extractors/multi_type_extractor.rb', line 8 def initialize(classes, types, filters, extraction_config = {}) @classes = classes @types = types @filters = filters @modules = extraction_config[:modules] || [] @handle_errors = extraction_config[:handle_errors] || false @options = extraction_config[:options] || {} end |
Instance Method Details
#extract ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/class_metrix/extractors/multi_type_extractor.rb', line 17 def extract return { headers: [], rows: [] } if @classes.empty? || @types.empty? # Build headers: ["Type", "Behavior", "Class1", "Class2", ...] headers = %w[Type Behavior] + @classes.map(&:name) all_rows = [] # : Array[Array[untyped]] @types.each do |type| type_data = extract_single_type(type) # Add rows with type prefix type_data[:rows].each do |row| behavior_name = row[0] values = row[1..] || [] new_row = [type_label(type), behavior_name] + values all_rows << new_row end end { headers: headers, rows: all_rows } end |