Class: Wikiranger::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/wikiranger/report.rb

Instance Method Summary collapse

Constructor Details

#initialize(contributions) ⇒ Report

Returns a new instance of Report.



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/wikiranger/report.rb', line 3

def initialize(contributions)
  @contributions = contributions.sort_by { |c| c.timestamp_object }.reverse
  @contributors  = contributions.map(&:user).uniq.sort_by { |ip| ip.split(".").map(&:to_i) }
  @pages         = contributions.map { |c| [c.pageid, c.title] }.uniq.sort_by { |p| p.last }
  @contribs_per_contributor = @contributors.map do |c|
    [c, contributions.count { |contrib| contrib.user == c }]
  end.to_h
  @contribs_per_page = @pages.map do |p|
    [p.first, contributions.count { |contrib| contrib.pageid == p.first }]
  end.to_h
end

Instance Method Details

#generate(destination) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/wikiranger/report.rb', line 15

def generate(destination)
  report = load_template
  b      = binding
  File.open(destination, "w") do |f|
    f.write(report.result(b))
  end
end