Class: WikiAvro::MediaWiki::FinalProgress
- Inherits:
-
Object
- Object
- WikiAvro::MediaWiki::FinalProgress
- Defined in:
- lib/wikiavro/mediawiki.rb
Direct Known Subclasses
Instance Method Summary collapse
- #f(n) ⇒ Object
-
#initialize ⇒ FinalProgress
constructor
A new instance of FinalProgress.
- #report_done ⇒ Object
- #report_pages(n) ⇒ Object
- #report_revisions(n) ⇒ Object
- #report_skipped_element(name) ⇒ Object
- #show_skipped ⇒ Object
- #total_skipped ⇒ Object
Constructor Details
#initialize ⇒ FinalProgress
Returns a new instance of FinalProgress.
172 173 174 175 176 177 |
# File 'lib/wikiavro/mediawiki.rb', line 172 def initialize @start_time = Time.now @pages = 0 @revisions = 0 @skipped_counts = Hash.new 0 end |
Instance Method Details
#f(n) ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/wikiavro/mediawiki.rb', line 117 def f(n) parts = [] while n >= 1 parts.unshift(n % 1000) n /= 1000 end head = parts.shift if parts.empty? if head head.to_s else n end else [head, parts.map {|p| sprintf('%03d', p)}.join(',')].join(',') end end |
#report_done ⇒ Object
157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/wikiavro/mediawiki.rb', line 157 def report_done duration = Time.now - @start_time avg_rate = @revisions / duration h = (duration / 60 / 60).floor m = (duration % (60 * 60) / 60).floor s = (duration % 60).floor # FIXME: Print to STDERR or some log skipped = total_skipped if skipped > 0 puts "Couldn't process #{skipped} elements! Detailed breakdown:" show_skipped end puts "Done! Took #{h}h#{m}m#{s}s. Averaged #{f avg_rate.round(0)} rps." end |
#report_pages(n) ⇒ Object
139 140 141 |
# File 'lib/wikiavro/mediawiki.rb', line 139 def report_pages(n) @pages += n end |
#report_revisions(n) ⇒ Object
143 144 145 |
# File 'lib/wikiavro/mediawiki.rb', line 143 def report_revisions(n) @revisions += n end |
#report_skipped_element(name) ⇒ Object
147 148 149 |
# File 'lib/wikiavro/mediawiki.rb', line 147 def report_skipped_element(name) @skipped_counts[name] += 1 end |
#show_skipped ⇒ Object
151 152 153 154 155 |
# File 'lib/wikiavro/mediawiki.rb', line 151 def show_skipped @skipped_counts.each do |name, count| puts "#{name}: #{count}" end end |
#total_skipped ⇒ Object
135 136 137 |
# File 'lib/wikiavro/mediawiki.rb', line 135 def total_skipped @skipped_counts.values.reduce(0, :+) end |