kablame 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/git-kablame +2 -13
- data/bin/svn-kablame +2 -13
- data/lib/kablame.rb +18 -6
- data/lib/kablame_options.rb +31 -0
- metadata +3 -2
data/bin/git-kablame
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
#
|
|
3
3
|
|
|
4
|
-
usage = <<USAGE
|
|
5
|
-
Run git-kablame
|
|
6
|
-
Usage: git-kablame <directory>
|
|
7
|
-
USAGE
|
|
8
|
-
|
|
9
4
|
require 'fileutils'
|
|
10
|
-
|
|
11
|
-
target = ARGV.first
|
|
12
|
-
|
|
13
|
-
if target.nil? || target.empty?
|
|
14
|
-
puts usage
|
|
15
|
-
exit(0)
|
|
16
|
-
end
|
|
17
5
|
require 'rubygems'
|
|
18
6
|
gem 'kablame'
|
|
19
7
|
require 'kablame'
|
|
20
|
-
|
|
8
|
+
|
|
9
|
+
GitKablame.kablame(ARGV)
|
data/bin/svn-kablame
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
#
|
|
3
3
|
|
|
4
|
-
usage = <<USAGE
|
|
5
|
-
Run git-kablame
|
|
6
|
-
Usage: git-kablame <directory>
|
|
7
|
-
USAGE
|
|
8
|
-
|
|
9
4
|
require 'fileutils'
|
|
10
|
-
|
|
11
|
-
target = ARGV.first
|
|
12
|
-
|
|
13
|
-
if target.nil? || target.empty?
|
|
14
|
-
puts usage
|
|
15
|
-
exit(0)
|
|
16
|
-
end
|
|
17
5
|
require 'rubygems'
|
|
18
6
|
gem 'kablame'
|
|
19
7
|
require 'kablame'
|
|
20
|
-
|
|
8
|
+
|
|
9
|
+
SvnKablame.kablame(ARGV)
|
data/lib/kablame.rb
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
require 'kablame_options'
|
|
1
2
|
class Kablame
|
|
2
3
|
|
|
3
4
|
def initialize(dirs = nil, formats = nil)
|
|
4
5
|
@users = {}
|
|
5
|
-
@folders = dirs.
|
|
6
|
-
@formats = formats
|
|
6
|
+
@folders = dirs.map {|dir| dir.sub(/\/+\Z/, '') }
|
|
7
|
+
@formats = formats || %w{rb}
|
|
7
8
|
end
|
|
8
9
|
|
|
9
10
|
def kablame
|
|
@@ -40,7 +41,7 @@ class Kablame
|
|
|
40
41
|
@users.values.sort.each do |user|
|
|
41
42
|
puts user.to_s
|
|
42
43
|
end
|
|
43
|
-
puts "**LOSER** #{@users.values.sort.last.name} **LOSER**"
|
|
44
|
+
puts "**LOSER** #{@users.values.sort.last.name} **LOSER**" unless @users.length == 1
|
|
44
45
|
end
|
|
45
46
|
|
|
46
47
|
|
|
@@ -51,6 +52,17 @@ class Kablame
|
|
|
51
52
|
def file_format_regex
|
|
52
53
|
%r{\.(#{@formats.join('|')})}
|
|
53
54
|
end
|
|
55
|
+
|
|
56
|
+
def self.kablame(args)
|
|
57
|
+
formats = KablameOptions.new(type).format_parse(args)
|
|
58
|
+
targets = args
|
|
59
|
+
|
|
60
|
+
if targets.nil? || targets.empty?
|
|
61
|
+
KablameOptions.print_usage(type)
|
|
62
|
+
exit(0)
|
|
63
|
+
end
|
|
64
|
+
new(targets, formats).kablame
|
|
65
|
+
end
|
|
54
66
|
end
|
|
55
67
|
|
|
56
68
|
class SvnKablame < Kablame
|
|
@@ -62,19 +74,19 @@ class SvnKablame < Kablame
|
|
|
62
74
|
`svn blame #{filename}`.split("\n")
|
|
63
75
|
end
|
|
64
76
|
|
|
65
|
-
def
|
|
77
|
+
def self.type; 'svn'; end
|
|
66
78
|
end
|
|
67
79
|
|
|
68
80
|
class GitKablame < Kablame
|
|
69
81
|
def blank_line_regex; /\(.+[\+-]\d{4}\s+\d+\)(\s*)$/; end
|
|
70
82
|
|
|
71
|
-
def name_match_regex; /\((
|
|
83
|
+
def name_match_regex; /\(([^\)]+)\s+\d{4}\-\d{2}/; end
|
|
72
84
|
|
|
73
85
|
def get_blame_lines(filename)
|
|
74
86
|
`git blame #{filename}`.split("\n")
|
|
75
87
|
end
|
|
76
88
|
|
|
77
|
-
def
|
|
89
|
+
def self.type; 'git'; end
|
|
78
90
|
end
|
|
79
91
|
|
|
80
92
|
class KablameUser
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'optparse'
|
|
2
|
+
|
|
3
|
+
class KablameOptions
|
|
4
|
+
|
|
5
|
+
def opts
|
|
6
|
+
OptionParser.new do |opts|
|
|
7
|
+
opts.banner = "Usage: #{@type}-kablame [options] <directories>"
|
|
8
|
+
opts.on("-f", "--formats xml,html", Array, "List of file formats to #{@type}-kablame") do |list|
|
|
9
|
+
@formats = list
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
|
13
|
+
puts opts
|
|
14
|
+
exit
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def initialize(type)
|
|
20
|
+
@type = type
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def format_parse(args)
|
|
24
|
+
opts.parse!(args)
|
|
25
|
+
@formats
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.print_usage(type)
|
|
29
|
+
puts self.new(type).opts
|
|
30
|
+
end
|
|
31
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kablame
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jacob Dunphy
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2008-06-
|
|
12
|
+
date: 2008-06-15 00:00:00 -07:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies: []
|
|
15
15
|
|
|
@@ -24,6 +24,7 @@ extra_rdoc_files: []
|
|
|
24
24
|
|
|
25
25
|
files:
|
|
26
26
|
- lib/kablame.rb
|
|
27
|
+
- lib/kablame_options.rb
|
|
27
28
|
- bin/git-kablame
|
|
28
29
|
- bin/svn-kablame
|
|
29
30
|
has_rdoc: true
|