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 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
- GitKablame.new(target).kablame
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
- SvnKablame.new(target).kablame
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.split.map {|dir| dir.sub(/\/+\Z/, '') }
6
- @formats = formats ? formats.split : %w{rb}
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 version_control; 'svn'; end
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; /\((.+)\s+\d{4}\-\d{2}/; end
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 version_control; 'git'; end
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.1.3
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-10 00:00:00 -07:00
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