Class: RubyMaat::Analysis::Entities
- Inherits:
-
BaseAnalysis
- Object
- BaseAnalysis
- RubyMaat::Analysis::Entities
- Defined in:
- lib/ruby_maat/analysis/entities.rb
Overview
Entities analysis - counts revisions per entity
Instance Method Summary collapse
Instance Method Details
#analyze(dataset, options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/ruby_maat/analysis/entities.rb', line 7 def analyze(dataset, = {}) min_revs = [:min_revs] || 1 # Group by entity and count revisions manually entity_stats = {} dataset.to_df.to_a.each do |row| entity = row["entity"] revision = row["revision"] entity_stats[entity] ||= Set.new entity_stats[entity] << revision end # Build results and apply minimum revisions filter results = [] entity_stats.each do |entity, revisions| n_revs = revisions.size next if n_revs < min_revs results << { entity: entity, "n-revs": n_revs } end # Sort by number of revisions (descending) results.sort! { |a, b| b[:"n-revs"] <=> a[:"n-revs"] } to_csv_data(results, [:entity, :"n-revs"]) end |