git-graph 0.1.0 → 0.1.1
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.tar.gz.sig +0 -0
- data/Readme.md +2 -2
- data/bin/git-graph +32 -22
- data/lib/git/graph/version.rb +1 -1
- metadata +3 -3
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/Readme.md
CHANGED
@@ -19,9 +19,9 @@ git-graph --interval day --output csv "cat Readme.md | wc -l"
|
|
19
19
|
|
20
20
|
```Bash
|
21
21
|
# number of lines in the readme as line-chart (via google charts)
|
22
|
-
git-graph --interval
|
22
|
+
git-graph --interval week --output chart "wc -l Readme.md"
|
23
23
|
```
|
24
|
-

|
25
25
|
|
26
26
|
```Bash
|
27
27
|
# number of gems the project depends on
|
data/bin/git-graph
CHANGED
@@ -4,7 +4,11 @@ $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
|
|
4
4
|
require 'git/graph'
|
5
5
|
require 'time'
|
6
6
|
|
7
|
-
options = {
|
7
|
+
options = {
|
8
|
+
:chart_dimensions => '600x500',
|
9
|
+
:value_name => "value",
|
10
|
+
:chart_title => "git-chart"
|
11
|
+
}
|
8
12
|
OptionParser.new do |opts|
|
9
13
|
opts.banner = <<BANNER
|
10
14
|
Make graphs from your git history.
|
@@ -19,6 +23,9 @@ BANNER
|
|
19
23
|
opts.on("-o", "--output FORMAT", "Output format - csv|chart") { |format| options[:format] = format }
|
20
24
|
opts.on("-i", "--interval INTERVAL", "Interval of git history - year|week|day)") { |interval| options[:interval] = interval }
|
21
25
|
opts.on("-b", "--bundle", "Bundle before running command") { options[:bundle] = true }
|
26
|
+
opts.on("--chart-dimensions DIMENSIONS", "Dimensions of the chart (default: #{options[:chart_dimensions]})") { |v| options[:chart_dimensions] = v }
|
27
|
+
opts.on("--value-name NAME", "Name of the value (default: #{options[:value_name]})") { |v| options[:value_name] = v }
|
28
|
+
opts.on("--chart-title TITLE", "Chart title (default: #{options[:chart_title]})") { |v| options[:chart_title] = v }
|
22
29
|
opts.on("-h", "--help","Show this.") { puts opts; exit }
|
23
30
|
opts.on('-v', '--version','Show Version'){ puts Git::Graph::VERSION; exit}
|
24
31
|
end.parse!
|
@@ -56,8 +63,6 @@ finish = (options[:end] || Time.at(run!("git log --reverse --format='%at' | head
|
|
56
63
|
current = start
|
57
64
|
raise "Backwards" if start < finish
|
58
65
|
|
59
|
-
data = {}
|
60
|
-
|
61
66
|
DAY = 24*60*60
|
62
67
|
INTERVALS = {
|
63
68
|
"day" => DAY,
|
@@ -65,38 +70,43 @@ INTERVALS = {
|
|
65
70
|
"year" => 365 * DAY
|
66
71
|
}
|
67
72
|
|
68
|
-
|
73
|
+
data = {}
|
74
|
+
interval = (INTERVALS[options[:interval] || "year"] || raise("unsupported interval"))
|
69
75
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
76
|
+
begin
|
77
|
+
while current > finish
|
78
|
+
date = current.strftime("%Y-%m-%d")
|
79
|
+
command = [
|
80
|
+
"git checkout -f `git rev-list -n 1 --before='#{date}' master`",
|
81
|
+
("bundle check || bundle" if options[:bundle]),
|
82
|
+
ARGV.first
|
83
|
+
].compact
|
84
|
+
success, output = without_bundler { run(command.map { |c| "(#{c})" }.join(" && ")) }
|
85
|
+
data[date] = if success
|
86
|
+
value = output.split("\n").last.to_s.strip
|
87
|
+
value =~ /^\d+\.\d+$/ ? value.to_f : value.to_i
|
88
|
+
else
|
89
|
+
data.values.last || 0
|
90
|
+
end
|
91
|
+
current -= interval
|
83
92
|
end
|
84
|
-
|
93
|
+
rescue SystemExit, Interrupt
|
94
|
+
$stderr.puts "Data collection interrupted by user"
|
85
95
|
end
|
86
96
|
|
97
|
+
# print output even if user stops execution
|
87
98
|
case options[:format]
|
88
99
|
when nil, "csv"
|
89
|
-
puts "Date
|
100
|
+
puts "Date,#{options[:value_name]}"
|
90
101
|
data.map do |date, value|
|
91
102
|
puts "#{date},#{value}"
|
92
103
|
end
|
93
104
|
when "chart"
|
94
105
|
require "google_chart"
|
95
|
-
title = "git-graph"
|
96
106
|
dates = data.keys.reverse
|
97
107
|
values = data.values.reverse
|
98
|
-
url = GoogleChart::LineChart.new(
|
99
|
-
line.data(
|
108
|
+
url = GoogleChart::LineChart.new(options[:chart_dimensions], options[:chart_title], false) do |line|
|
109
|
+
line.data(options[:value_name], values)
|
100
110
|
line.axis :x, :labels => [dates.first, dates.last]
|
101
111
|
line.axis :y, :labels => ['0', values.max]
|
102
112
|
end.to_url
|
data/lib/git/graph/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-graph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -87,7 +87,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
87
87
|
version: '0'
|
88
88
|
segments:
|
89
89
|
- 0
|
90
|
-
hash:
|
90
|
+
hash: -3227504656897889005
|
91
91
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
92
|
none: false
|
93
93
|
requirements:
|
@@ -96,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
96
|
version: '0'
|
97
97
|
segments:
|
98
98
|
- 0
|
99
|
-
hash:
|
99
|
+
hash: -3227504656897889005
|
100
100
|
requirements: []
|
101
101
|
rubyforge_project:
|
102
102
|
rubygems_version: 1.8.24
|
metadata.gz.sig
CHANGED
Binary file
|