Class: RubyLens::Model::DependencyAggregation
- Inherits:
-
Object
- Object
- RubyLens::Model::DependencyAggregation
- Defined in:
- lib/rubylens/model/dependency_aggregation.rb
Constant Summary collapse
- SIGNAL_COLUMNS =
(1..6).freeze
Instance Method Summary collapse
- #add(package_index:, row:, construct_index:) ⇒ Object
-
#initialize(package_count:) ⇒ DependencyAggregation
constructor
A new instance of DependencyAggregation.
- #packages ⇒ Object
- #signal_maxima ⇒ Object
Constructor Details
#initialize(package_count:) ⇒ DependencyAggregation
Returns a new instance of DependencyAggregation.
8 9 10 11 12 13 14 |
# File 'lib/rubylens/model/dependency_aggregation.rb', line 8 def initialize(package_count:) raise ArgumentError, "package_count must be nonnegative" if package_count.negative? @ruby_counts = Array.new(package_count) { Array.new(4, 0) } @signal_maxima = Array.new(6, 0) @rows = Array.new(package_count) { [] } end |
Instance Method Details
#add(package_index:, row:, construct_index:) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/rubylens/model/dependency_aggregation.rb', line 16 def add(package_index:, row:, construct_index:) local_index = @rows[package_index].length @ruby_counts[package_index][construct_index] += 1 if construct_index maxima = @signal_maxima SIGNAL_COLUMNS.each do |column| value = row[column] index = column - 1 maxima[index] = value if value > maxima[index] end @rows[package_index] << (row.frozen? ? row : row.dup.freeze) local_index end |
#packages ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/rubylens/model/dependency_aggregation.rb', line 29 def packages @rows.each_index.map do |index| { ruby_counts: @ruby_counts[index].dup.freeze, declarations: @rows[index].dup.freeze, }.freeze end.freeze end |
#signal_maxima ⇒ Object
38 39 40 |
# File 'lib/rubylens/model/dependency_aggregation.rb', line 38 def signal_maxima @signal_maxima.dup.freeze end |