summaryrefslogtreecommitdiff
path: root/web/lib/reports.rb
blob: db16948440722daff6b8fce942c469766cdbcb54 (plain)
1
2
3
4
5
6
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# web/lib/reports.rb
class Report

    @@reports = Array.new

    attr_reader :title, :sources

    def self.each
        @@reports.sort_by{ |report| report.title }.each do |report|
            yield report
        end
    end

    def self.each_visible
        @@reports.select{ |report| report.visible? }.sort_by{ |report| report.title }.each do |report|
            yield report
        end
    end

    def self.each_visible_with_index
        @@reports.select{ |report| report.visible? }.sort_by{ |report| report.title }.each_with_index do |report, idx|
            yield report, idx
        end
    end

    def initialize(title, *sources)
        @@reports << self
        @title = title
        @sources = Hash.new
        @visible = sources.size > 0
        sources.each do |id|
            @sources[id] = 1
        end
    end

    def uses_source?(id)
        sources.has_key? id
    end

    def name
        @title.gsub(/[\s-]/, '_').downcase
    end

    def url
        '/reports/' + name
    end

    def visible?
        @visible
    end

end

Report.new 'Database statistics', :db
Report.new 'JOSM styles' # disabled
Report.new 'Characters in keys', :db
Report.new 'Frequently used keys without wiki page', :db, :wiki
Report.new 'Key lengths', :db
Report.new 'Language comparison table for keys in the wiki', :wiki
Report.new 'Languages', :wiki
Report.new 'Wiki pages about non-existing keys', :db, :wiki
Report.new 'Name tags' #disabled
Report.new 'Similar keys', :db
Report.new 'Historic development', :db