Class: Kablame
- Inherits:
-
Object
- Object
- Kablame
- Defined in:
- lib/kablame.rb
Direct Known Subclasses
Instance Method Summary collapse
- #file_format_regex ⇒ Object
- #folders ⇒ Object
-
#initialize(dirs = nil, formats = nil) ⇒ Kablame
constructor
A new instance of Kablame.
- #kablame ⇒ Object
- #print_results ⇒ Object
- #process_file(filename) ⇒ Object
Constructor Details
#initialize(dirs = nil, formats = nil) ⇒ Kablame
Returns a new instance of Kablame.
3 4 5 6 7 |
# File 'lib/kablame.rb', line 3 def initialize(dirs = nil, formats = nil) @users = {} @folders = dirs.split.map {|dir| dir.sub(/\/+\Z/, '') } @formats = formats ? formats.split : %w{rb} end |
Instance Method Details
#file_format_regex ⇒ Object
51 52 53 |
# File 'lib/kablame.rb', line 51 def file_format_regex %r{\.(#{@formats.join('|')})} end |
#folders ⇒ Object
47 48 49 |
# File 'lib/kablame.rb', line 47 def folders @folders end |
#kablame ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/kablame.rb', line 9 def kablame folders.each do |directory| if File.exists?(directory) puts "\nKablaming #{directory}" Dir.glob(directory+"/**/*").grep(file_format_regex).each do |filename| process_file(filename) end else puts "#{directory} not found. Skipping it!" end end unless(@users.empty?) print_results else puts "No results. Try a different directory?" end end |
#print_results ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/kablame.rb', line 37 def print_results puts "\n\n++++++++++++TOTALS++++++++++++" puts "**WINNER** #{@users.values.sort.first.name} **WINNER**" @users.values.sort.each do |user| puts user.to_s end puts "**LOSER** #{@users.values.sort.last.name} **LOSER**" end |
#process_file(filename) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/kablame.rb', line 27 def process_file(filename) print '.' STDOUT.flush get_blame_lines(filename).each do |line| next if line.match(blank_line_regex) name = line.match(name_match_regex)[1].strip (@users[name] ? @users[name].increment : @users[name] = KablameUser.new(name)) unless name.nil? end end |